Delphi2010 コンボボックス(ComboBox)
2010/08/23
前頁で[Standard]内の「ListBox」(リストボックス)について書きましたので次に、同じく[Standard]内の「ComboBox」(コンボボックス)について見てみます。
コンボボックスは Delphi6 にもあります。
コンボボックスは、文字入力、および、右横にある「▼」をクリックして内容項目一覧を表示させて選択入力する、というコンポーネントです。文字入力をさせないようにして一覧から選択するだけ、とすることも出来ます。リストボックスでは内容項目一覧が最初から見えている状態で選択しますが、コンボボックスの場合は「▼」をクリックしないと見えません。ですので内容項目数は余り多くないほうがいいでしょう。多すぎると見えにくくなりますし選択しにくくなります。最初から見えない分、スペースを取らないというメリットもあります。
それでは配置してみます。1つ目なので Nameプロパティは「ComboBox1」となります。項目内容は初期状態で何も無しとなっています。
内容項目をデザイン時に作成する場合には、リストボックス同様、<オブジェクトインスペクタ>のItemsプロパティの右横の[…]ボタンをクリックします。
↓
内容項目を入力・編集し[OK]をクリック
保存・コンパイル(再構築)して実行
↓
プログラムで内容項目を追加する場合には、Itemsプロパティはリストボックスと同じTStrings型ですので、リストボックスの時と同様に可能です。
それでは<オブジェクトインスペクタ>を見ていきます。
まずは AutoCloseUpプロパティ。ヘルプより。
ユーザーが項目を選択したとき,自動的にドロップダウンを閉じるかどうかを指定します。
AutoCloseUp が true になっていれば,ユーザーが項目を選択したとき,自動的にドロップダウンが閉じられます。
との事ですが、指定して実行してもいまひとつ違いが分かりません。
次に AutoDropDownプロパティ。ヘルプより。
ユーザーキーストロークに応答してドロップダウンリストを自動的に開くかどうかを指定します。
AutoDropDown が true であれば,コンボボックスにフォーカスがあるときにユーザーが文字をタイプすれば自動的にリストをドロップダウンします。
AutoDropDown が false であれば,ユーザーはコンボボックスリストをドロップダウンボタンを使って明示的にドロップダウンしなければなりません。
との事です。マウスで選択する場合は無関係ですが、キー入力を行う際には自動的に一覧が表示されますので面白いかもしれません。
これは以前からありますが、コンボボックスの外観を決めるSytleプロパティ。ヘルプより。
csDropDown
手入力されたテキスト用の編集ボックスを持つドロップダウンリストを指定します。項目はすべて、同じ高さの文字列です。
csSimple
下に固定リスト(リストボックス)が付いた編集ボックスを指定します。リストの長さは、コンボボックスの Height によって決まります。
csDropDownList
編集ボックスが付いていないドロップダウンリストを指定します。ユーザーは、テキストを手入力できません。項目はすべて、同じ高さの文字列です。
csOwnerDrawFixed
編集ボックスが付いていないオーナー描画のドロップダウンリストを指定します。リスト内の各項目は、ItemHeight プロパティで指定された高さになります。
csOwnerDrawVariable
編集ボックスが付いていないオーナー描画のドロップダウンリストを指定します。リスト項目は、それぞれ変更が可能です。
csDropDownList、csOwnerDrawFixed、csOwnerDrawVariableについては任意のキー入力というのは出来ません。csSimpleは内容項目一覧は表示されません。私がよく使うのは「csDropDown」(キー入力可能)または「csDropDownList」(キー入力不可)ですね。
「csDropDown」(キー入力可能)の場合には、内容は
s := ComboBox1.Text ;
で取得します。
「csDropDownList」(キー入力不可)の場合は
i := ComboBox1.ItemIndex ;
if (i > -1) then
s := ComboBox1.Items[i] ;
という感じでした。従来は Textプロパティは無効でしたが、Delphi 2010では
s := ComboBox1.Text ;
という取得方法でも有効となっているようです。
コンボボックスで内容項目一覧から項目を選択する場合、以前は OnSelect イベントで行うようにして OnClickイベントは使っていませんでした。というのも、矢印キーやキー入力で選択する場合にはイベントが動かなかったからですが、Delphi 2010では、OnClickイベントでも、矢印キーやキー入力の場合でもイベントは実行される様子です。
そのほかには別段気になるプロパティもイベントも無さそうな感じです。
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
▲2010/08/22
2010/08/23
▼2010/08/24
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.