前回でSQLite3データベースへMeidaMarkerのデータを挿入して基礎となるデータベースが完成しました。
今回はこれから新しくデータを登録する際の入力フォームを作成してみたいと思います。
ちょっと長くなりそうなので、第1弾としてフォームの設定をしてみます。
入力フォーム全景
入力フォームに関しては単純にデータベースの項目分の入力枠を作成しました。
カテゴリ・状態・評価・所有に関してはフリーフォーマットではなく、入力内容に制限をかけるためにcomboboxにしました。
各種コントロールの設定
初期値から変更したもののみ記載しています。
但しフォントをメイリオにしてサイズは適当に変更しています。
項目 | 内容 |
---|---|
タイトル | カテゴリ |
オブジェクト名 | conCategory |
項目 | 内容 |
---|---|
タイトル | タイトル |
オブジェクト名 | conTitle |
IMEMode | fmIMEModeOn |
項目 | 内容 |
---|---|
タイトル | アーティスト |
オブジェクト名 | conArtist |
IMEMode | fmIMEModeOn |
項目 | 内容 |
---|---|
タイトル | レーベル |
オブジェクト名 | conLabel |
項目 | 内容 |
---|---|
タイトル | 購入日 |
オブジェクト名 | conBuyDate |
IMEMode | fmIMEModeOff |
項目 | 内容 |
---|---|
タイトル | 状態 |
オブジェクト名 | conStatus |
項目 | 内容 |
---|---|
タイトル | 評価 |
オブジェクト名 | conAssessment |
項目 | 内容 |
---|---|
タイトル | コメント |
オブジェクト名 | conComment |
項目 | 内容 |
---|---|
タイトル | 所有 |
オブジェクト名 | conPossession |
IMEModeはカーソルが当たった際のIMEの入力モードを自動的に変更してくれます。
IMEMode | 内容 |
---|---|
fmIMEModeOn | On(日本語入力) |
fmIMEModeOff | off(英数入力) |
購入日にカーソルが当たった際にoffにしているのは、日付を入力する際に日本語入力になっていると確定の手間が増えるためです。
英数入力になっているとスムーズに入力ができます。
重要設定『タブオーダー』
タブ オーダーとは、Tab キーを押したときに、ダイアログ ボックス内で入力フォーカスがコントロール間を移動する順序です。 通常、タブ オーダーはダイアログ ボックスの左から右、および上から下の順序になっています。
Changing the Tab Order of Controls
今回作成したフォームを例に上げると。
1:フォーム起動時に『カテゴリ』のコンボボックスにカーソルが当たっている。
2:その状態でTabもしくはEnterを押すと『タイトル』のテキストボックスにカーソルが移動
3:以降同じようにTabないしEnterを押すとすぐ下の項目にカーソルが移動する。
何を当たり前なことを言っているんだと言う方は、きちんと入力フォーマットを上から順番に作ってるのでしょう。 しかし私のように行き当たりばったり作っている人間は、必ずしも上から順番には作成しないのです。
そうするとどういう事が起きるのか。
上述の2のところでカーソルが『タイトル』の所に飛ばずに『レーベル』の所に飛んだりします。
そのような状態になってしまうと入力時にカーソルがどこにあるかわからなくなって作業効率が著しく低下してしまいます。
そのような状態を解消するためにはタブオーダーの設定を変更します。
フォーム上どこでも良いので右クリック→タブオーダーを選択
ここにはカーソルが飛ぶ順番にオブジェクト名が順番に記載されています。
ここでオブジェクト名をフォーム上のコントロールの並びと同じように変更してください。
ただしここに記載されていてもカーソルが飛ばないオブジェクトも存在します。
例えばLabelです。
なぜ飛ばないかと言うとLabelの『TabStop』プロパティの値がfalseになっているためです。
Textboxやcomboboxはこの値がTrueになっているためカーソルが飛ぶようになっています。
この値をfalseに変更するとそのコントロールにはカーソルがTabやEnterでは飛ばなくなります。
手動で選択することは出来ます。
※LabelはTabStopをTrueに変更しても自動的にfalseに戻されます。
まとめ
今回はフォーム上に設置した各種コントロールの設定を確認しました。
次回はフォームに設定したコードを紹介します。