ListBoxコンポーネント(TLISTBOX)
このコンポーネントは、ユーザーがアイテムを選択、結合、削除、または変更できる一連のリストを表示する標準のWindowsリストボックスコンポーネントです。
1。 tllistboxコンポーネントの典型的な使用法
リストボックスは、Windowsアプリケーションでよく使用されます。リストボックスは、ユーザーが選択できるロール可能なウィンドウに複数のアイテムをリストできます。たとえば、DelphiのIDEでは、[表示]メニューでコンポーネントリストコマンドを使用する場合、DelphiはVCLのすべてのコンポーネントをリストします。このプログラムは、主に項目属性を使用して、Items.Strings []を使用して特定のオプションのコンテンツを取得するなど、さまざまなアイテムを制御します。 ItemIndexプロパティを介して現在のオプションを指定または取得します。
2。 Tlistboxコンポーネントの重要なプロパティ
・列リストボックス番号・拡張セレクトこのプロパティは、シフトキーとCTRLキーを使用して複数のアイテムを同時に選択できるかどうかを設定するために使用されます。リストボックス・itemheightこのプロパティは、リストボックス内の各アイテムの高さを設定するために使用されます。このプロパティは、選択したアイテムのシーケンス番号をリストボックスに設定するために使用されます。アイテムプロパティ・マルチセレクトにより複数のアイテムを同時に選択できます。リストボックスはアルファベット順にソートする必要があります。スタイルこのプロパティは、リストボックスのスタイルを設定するために使用されます。
(1)列の属性
このプロパティのデフォルト値は0で、リストボックスは単一の列に表示されます。リストボックスは自動的に垂直スクロールバーを追加します。このプロパティが0より大きい値に設定されている場合、リストボックスは最初に列に入力されます。 1つの列に完全に表示できない場合は、列2、列3などに表示されますが、列プロパティによって設定された列の数のみが画面に表示されます。このプロパティが2に設定されている場合、画面に2つの列のみが表示されます。
(2)プロパティを拡張する
このプロパティは、複数のアイテムをシフトキーとCTRLキーと同時に選択できるかどうかを設定するために使用されます。ユーザーは、複数のアイテムを選択します(必ずしも連続していません)。
(3)統合プロパティ
このプロパティがtrueに設定され、スタイルプロパティがiSowndrawfixedに設定されている場合、リストボックスの高さボックスの高さは、リストボックスのアイテムの高さの整数倍に自動的に調整されます。このプロパティがfalseに設定されている場合、リストボックスの最後のアイテムは完全に表示されない場合があります。これは、リストボックスの高さが必ずしもItemheightプロパティの整数倍ではないためです。
(4)itemheight属性
スタイルプロパティがiSownerfixed(ユーザー定義)に設定されている場合、このプロパティは、リストボックスの各アイテムの高さを設定するために使用されます。 IntegralHeightプロパティがTrueに設定されている場合、リストボックス全体の高さは、ItemHeightプロパティの値で自動的に調整されます。スタイルプロパティがISStandardまたはiSownerDrawVariableに設定されている場合、ItemHeightプロパティは無意味になります。
(5)ItemIndex属性
このプロパティは、選択したアイテムのシーケンス番号をリストボックスに設定するために使用されます。 MultiSelectプロパティがTRUEに設定され、ユーザーが複数のアイテムを選択すると、このプロパティは入力フォーカスでアイテムのシーケンス番号を返します。プログラムサンプルコードは次のとおりです。
[delphi] PlainCopyProcedureTform1.formcreate(sender:tobject); vari:integer; beginlistbox1.multiselect:= false; button.caption = 'movetotop'; fori:= 1to10dolistbox1.items.add( 'item'+inttostr(i)) ; end; proceduretton1click(sender:tobject1.items.move(listbox1.itemindex、0);
(6)項目属性
リストボックスは、アイテムプロパティを介してアクセスします。
[delphi] PlainCopyVarf:file; i:integer; beginfori:= 0to(filelistbox1.items.count-1)dobegintryiffilElistbox1.selected [i] thenbeginifbox1.items.strings [i])thenbeginmessedlg( 'file:'+filelistbod1 .items.strings [i]+'notfound'、mterror、[mbok]、0); contion; end; assionfile(f、filelistbox1.items.strings [i]); reset(f、l); listbox1.items。 add(filesize(f)); closefile(f);
(7)マルチセレクトプロパティ
このプロパティがtrueに設定されている場合、複数のアイテムを同時に選択することができます。ユーザーは、CTRLまたはシフトキーを押したり、マウスでアイテムを選択したり、マウスで直接ドラッグアンドドロップして選択したりできます。
(8)ソートされたプロパティ
このプロパティは、リストボックス内のアイテムをアルファベット順にソートする必要があるかどうかを設定するために使用されます。並べ替えられたリストボックスの場合、add()またはinsert()を呼び出すことで追加されたアイテムは、適切な場所に自動的に移動します。プログラムサンプルコード
は次のとおりです。 item1 '); listbox1.items.add(' item4 '); end;
(9)スタイルの属性
このプロパティは、リストボックスのスタイルを設定するために使用されます。次の3つのユーザー選択可能な値を設定します。 •lbstandard:各アイテムは文字列であり、各アイテムの高さは同じです。 •lbownerdrawfixed:アイテムは必ずしも文字列ではありませんが、アイテムの高さも項目に指定できます。 OndraWitemイベントは、各アイテムが表示される前にトリガーされます。 •lbownerdrawvariable:アイテムは必ずしも文字列ではなく、画像でもあり、アイテムの高さは異なる場合があります。各アイテムが表示される前に2つのイベントがトリガーされます。最初のイベントは、各アイテムの高さを指定し、2つ目はオンドラウィットイベントで、プログラムが各アイテムを描画します。
3。 TlistBoxコンポーネントの重要なイベント
・スタイルプロパティがlbowndrawfixedまたはlbownerdrawvariableに設定され、リストボックスのアイテムを塗装する必要がある場合、スタイルプロパティがトリガーされ、リストボックス内のアイテムが再現される必要がある場合は、塗り直します。 、イベントがトリガーされます
4。ボックスコンポーネントを整理するための重要な方法
プログラムでTlistboxコンポーネントの一般的に使用される方法は明確です。これは、リストボックス内のすべてのオプションを削除する機能です。
ListBoxのアイテムは、コンテンツに応じてさまざまな色をどのように表示しますか
1。ListBox1のスタイルプロパティをLbownDrawVariable2に変更します。
例えば:
[delphi] PlainCopyProcedureTform1.listbox1drawitem(control:twincontrol; index:integer; rect; state:townerdrawstate)奇数のbeginlistbox1.canvas.brush.color:= clwindow; listbox1.canvas.textrect(rect、rect.left、rect.top、listbox1.items [index]); endelse // color beginlistbox1.canvas項目は偶数です。brush.color:= clinactivecaptiontext; listbox1.canvas.textrect(rect、rect.left、rect.top、listbox1.items [index]); end; ifodselectedinstatethen //選択したときの色.color:= clhighlight; listbox1.canvas.textrect(rect、rect.left、rect.top、listbox1.items [index]); end; end; end; end; end; end; end; end;