値リスト エディタ
コントロールの種類:インデックス への移動
TValueListEditor は、名前/値のペアを <名前>=<値> の形式で格納した文字列リストの編集に特化したグリッドです。名前と値は TStrings の下位クラスとして格納され、Strings プロパティの値となります。Values プロパティを使って、どの名前の値でも検索できます。TValueListEditor は Windows 専用です。
グリッドには 2 つの列があり、一方は名前に、もう一方は値にそれぞれ使用されます。デフォルトでは、名前列の名前は "Key"、値列の名前は "Value" です。TitleCaptions プロパティを設定することで、これらのデフォルトを変更することができます。DisplayOptions プロパティを使って、これらのタイトルを省略することもできます(このプロパティは、コントロールのサイズ変更時の動作も制御します)。
KeyOptions プロパティを使用すれば、名前列をユーザーが編集できるかどうかを制御できます。KeyOptions には、名前の編集、新しい名前の追加、名前の削除、新しい名前が一意でなければならないかどうかの制御をそれぞれ可能にする個別のオプションが含まれています。
ItemProps プロパティを使用すれば、値列のエントリをユーザーがどう編集するかを制御できます。それぞれの項目には別個の TItemProp オブジェクトがあり、それを通じて以下が可能になります。
- 有効な入力を限定するための編集マスクを指定すること。
- 値の最大長を指定すること。
- 値に読み取り専用のマークを付けること。
- ユーザーが選択できる値を一覧表示する選択リストを開くドロップダウン矢印、またはユーザーが値を入力するためのダイアログ ボックスを表示するのに使用できるイベントをトリガする参照([...])ボタンが値リスト エディタに表示されることを指定すること。
ドロップダウン矢印があることを指定した場合は、ユーザーが選択する値のリストを用意する必要があります。これらは静的なリスト(TItemProp オブジェクトの PickList プロパティ)でもよいし、値リスト エディタの OnGetPickList イベントを使って実行時に動的に追加してもかまいません。また、これら 2 つのアプローチを組み合わせて、静的なリストを OnGetPickList イベント ハンドラで変更するような仕組みにすることもできます。
参照([...])ボタンがあると指定した場合は、ユーザーがそのボタンをクリックしたときに発生する応答(適切な場合には値の設定を含む)を定義する必要があります。OnEditButtonClick イベント ハンドラを作成することで、この応答を定義します。