


 
 
 
 
 
 
 |
DelphiXE3 [FMX]コンボボックス(ComboBox) 2013/10/07 |
前頁で[Standard]内の「ListBox」(リストボックス)について書きましたので次は、同じく[Standard]内の「ComboBox」(コンボボックス)です。
【Delphi2010の記事はこちら】
【DelphiXE3[VCLアプリケーション]の記事はこちら】
 |  |


 |
(ヘルプより)
DropDownCount
ドロップダウンリスト内に表示される項目の最大数を示します。
デフォルトでは、ドロップダウンリストは 8項目を表示します。これはユーザーがスクロールせずに表示できる数です。ドロップダウンをより小さくまたは大きくするには、DropDownCount 値に 8 より小さいまたは大きい数値を指定します。
DropDownCount 値が項目数より大きい場合、ドロップダウンリストは存在する項目をすべて表示できる大きさになります。DropDownCount 値が項目数より小さい場合、ドロップダウンリストはスクロール バーを表示します。 |
ListBoxResource
コンボボックスのドロップダウンリストがリンクされる、リソースオブジェクトの名前を示します。
ListBoxResource を使用すると、コンボボックスのドロップダウンリスト コンポーネントのスタイルを指定することができます。 |
Placement(※1)
コンボボックスボタンに対してリストボックスの位置をどうするかを指定します。
たとえば、Placement が TPlacement.plRight に設定されている場合、ドロップダウンリストは、コンボ ボックスの右側に表示されます。 |
UseSmallScrollBars
ドロップダウンリストに小スクロールバーを使うかどうかを指示します。
False(デフォルト):
True:
|
Placement(※1)
TPlacement の取り得る値は以下のとおりです。
plBottom
TPopup は、PlacementRectangle の下端から、指定された縦方向と横方向のオフセットだけずらした場所に、PlacementRectangle の外に向かって配置されます。オフセットが指定されていない場合には、TPopup の左上の角が PlacementRectangle の左下の角と揃えられます。PlacementRectangle が空の場合には、TPopup は PlacementTarget に対して配置されます。PlacementTarget も PlacementRectangle も指定されていない場合には、TPopup は画面の左上の角を起点として配置されます。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plTop
TPopup は、PlacementRectangle の上端から、指定された縦方向と横方向のオフセットだけずらした場所に、PlacementRectangle の外に向かって配置されます。オフセットが指定されていない場合には、TPopup の左下の角が PlacementRectangle の左上の角と揃えられます。PlacementRectangle が空の場合には、TPopup は PlacementTarget に対して配置されます。PlacementTarget も PlacementRectangle も指定されていない場合には、TPopup は画面の左上の角を起点として配置されます。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plLeft
TPopup は、PlacementRectangle の左端から、指定された縦方向と横方向のオフセットだけずらした位置に、PlacementRectangle の外に向かって配置されます。オフセットが指定されていない場合には、TPopup の右上の角が PlacementRectangle の左上の角と揃えられます。PlacementRectangle が空の場合には、TPopup は PlacementTarget に対して配置されます。PlacementTarget も PlacementRectangle も指定されていない場合には、TPopup は画面の左上の角を起点として配置されます。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plRight
TPopup は、PlacementRectangle の右端から、指定された縦方向と横方向のオフセットだけずらした場所に、PlacementRectangle の外に向かって配置されます。オフセットが指定されていない場合には、TPopup の左上の角が PlacementRectangle の右上の角と揃えられます。PlacementRectangle が空の場合には、TPopup は PlacementTarget に対して配置されます。PlacementTarget も PlacementRectangle も指定されていない場合には、TPopup は画面の左上の角を起点として配置されます。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plCenter
TPopup は、PlacementRectangle の中央から、指定された縦方向と横方向のオフセットだけずらした場所に配置されます。PlacementRectangle が空の場合には、TPopup は PlacementTarget に対して配置されます。PlacementTarget も PlacementRectangle も指定されていない場合には、TPopup の中央が画面の左上の角になるよう配置されます。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plBottomCenter
TPopup は、PlacementRectangle の下辺の中央から、指定された縦方向と横方向のオフセットだけずらした場所に、PlacementRectangle の外に向かって配置されます。オフセットが指定されていない場合には、TPopup の上辺が PlacementRectangle の下辺の中央になるよう配置されます。PlacementRectangle が空の場合には、TPopup は PlacementTarget に対して配置されます。PlacementTarget が指定されていない場合には、plBottom と同じ結果になります。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plTopCenter
TPopup は、PlacementRectangle の上辺の中央から、指定された縦方向と横方向のオフセットだけずらした場所に、PlacementRectangle の外に向かって配置されます。オフセットが指定されていない場合には、TPopup の下辺が PlacementRectangle の上辺の中央になるよう配置されます。PlacementRectangle が空の場合には、TPopup は PlacementTarget に対して配置されます。PlacementTarget が指定されていない場合には、plTop と同じ結果になります。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plLeftCenter
TPopup は、PlacementRectangle の左辺の中央から、指定された縦方向と横方向のオフセットだけずらした場所に、PlacementRectangle の外に向かって配置されます。オフセットが指定されていない場合には、TPopup の右辺が PlacementRectangle の左辺の中央になるよう配置されます。PlacementRectangle が空の場合には、TPopup は PlacementTarget に対して配置されます。PlacementTarget が指定されていない場合には、plLeft と同じ結果になります。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plRightCenter
TPopup は、PlacementRectangle の右辺の中央から、指定された縦方向と横方向のオフセットだけずらした場所に、PlacementRectangle の外に向かって配置されます。オフセットが指定されていない場合には、TPopup の左辺が PlacementRectangle の右辺の中央になるよう配置されます。PlacementRectangle が空の場合には、TPopup は PlacementTarget に対して配置されます。PlacementTarget が指定されていない場合には、plRight と同じ結果になります。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plAbsolute
TPopup は、画面の左上の角を起点として、TPopup.PlacementRectangle の左上の角に配置されます。TPopup のその他の配置プロパティは無視されます。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plMouse
TPopup はマウスの位置を起点として配置されます。TPopup の左上の角がマウスの位置に揃えられます。TPopup のその他の配置プロパティは無視されます。画面の端で TPopup が隠れる場合でも、再配置は行われません。
plMouseCenter
TPopup はマウスの位置を起点として配置されます。マウスの位置が TPopup の上辺の中央に揃えられます。TPopup のその他の配置プロパティは無視されます。画面の端で TPopup が隠れる場合でも、再配置は行われません。 |
|
(ヘルプより)
TComboBox は、リストボックスが付属したボタンです。
ボタンをクリックするとリストが表示されます。リストから項目を選択すると、その項目がボタンのテキストとして表示されます。コンボ ボックスボタンに直接テキストを入力することはできません。
項目を追加するには、フォーム上でコンボ ボックスを右クリックし、[項目の追加]を選択します。すると、TListBoxItem オブジェクトが新しく作成されて[構造]ペインに表示され、個別に編集できるようになります。また、フォーム デザイナでコンボ ボックス コントロールをダブルクリックして、コンボ ボックスの項目を管理することもできます。この場合には[項目デザイナ]ダイアログが開き、そこで項目を追加/削除したり順序を変更することができます。
Windows 8 スタイル アプリケーションの場合は、DropDownKind プロパティの値を ddkNative に設定すると、Windows 8 スタイルのコンボ ボックスを作成できます。詳細は、「Metropolis UI コンボ ボックスの作成」を参照してください。 |
との事で、VCLアプリケーションでのコンボボックスは、文字入力を行うエディットに、あらかじめ登録しておいた文字候補一覧を選択して入力出来るような一面もありました。(※勿論、文字入力を出来ないようにして、一覧からの選択のみ行う、ということも出来ますが。つまりはリストボックスだと画面を大きく取ってしまうので、コンボボックスを利用して画面占有分を1行分だけで済ませたいというケースです。)
しかしFireMonkey(FMX)の場合には、文字入力がありません。一覧からの選択のみです。これは魅力半減ですね。また、オブジェクトインスペクタに Itemsプロパティもありません(※ItemIndexプロパティはありますし、コーディングの際に Itemsプロパティを利用する事は出来ます)。リストボックスと同様、文字列一覧データを持つのではなく、項目エディタを動かして、項目デザイナで項目(ListBoxItem)を追加・編集・削除を行い、項目と親子関係を持つようなイメージになってます。Windows8用の「MetropolisUIListBoxItem」を扱う事も出来るようです。
実行時:


 |
(ヘルプより)
Align
このコントロールの整列オプション(上、左、クライアントなど)を示します。 |
IsChecked
項目に関連づけられているチェックボックスに、チェックが付いているかどうかを示します。 |
IsSelected
項目が選択されているかどうかを示します。
IsSelected が True の場合、項目は選択された状態でその親コンポーネント内に表示されます。 |
TextAlign
テキストを、水平方向の整列で、どのように表示するかを示します。
TextAlign プロパティは、 TTextControl オブジェクトを、水平方向の整列で、どのように表示するかを示します。 TextAlign は、次の値のいずれかを取ります:
・taCenter (デフォルト)
テキストを水平軸上で、TTextControl オブジェクトの真ん中に整列します。
・taLeading
テキストを水平軸上で、TTextControl オブジェクト中の一番左の位置に整列します。
・taTrailing
テキストを水平軸上で、TTextControl オブジェクト中の一番右の位置に整列します。 |
WordWrap
オブジェクト内のテキストが、コントロールの幅より長くなった場合に、折り返すのかどうかを示します。
WordWrap を True に設定すると、コントロールを複数行テキストで表示することができます。WordWrap が True の場合、オブジェクト内に長すぎて入らないテキストは、右マージンで折り返され、追加行に続きます。
WordWrap が False の場合、テキストは、単一行上に広がります。しかしこの場合、長すぎて入らないテキストは、途切れて表示されます。
WordWrap プロパティのデフォルト値は、False です。 |
|
OnSelectイベントはありません。
OnClickイベントは、ボタンをクリックした時のイベントとなりますので、一覧選択を行う前に処理が行われます。ですので、選択直後にどれを選択したのか?と判断したい場合には、OnChangeイベントを利用します。
procedure TForm1.ComboBox1Change(Sender: TObject);
var
i : integer ;
s : string ;
begin
i := ComboBox1.ItemIndex ;
s := '' ;
if (i > -1) then s := ComboBox1.Items[i] ;
ShowMessage(IntToStr(i) + ':' + s);
end; |
他のコンポーネントと同様、スタイルによって概観は変化します。スタイルブックを追加し、スタイル「Air.Style」を指定した状態です。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/10/07
2013/10/07
▼2013/10/08
シェアウェア
Script!World
データベース
|