メインコンテンツまでスキップ
バージョン: 21

リストボックスオブジェクト

配列リストボックス

配列リストボックスでは、それぞれの列に 4D の 1次元配列を割り当てなければなりません。 ポインター配列を除きすべてのタイプの配列を使用できま す。 行数は配列の要素数により決定されます。

デフォルトで 4D は各列に "ColumnX" という名前を割り当てます。 これは他のカラムプロパティ同様、 カラムプロパティ 内で変更することができます。 それぞれのカラムにおける表示フォーマットは、 OBJECT SET FORMAT コマンドを使用することで定義することもできます。

配列タイプのリストボックスは、特別なメカニズムをもつ 階層モード で表示することができます。

配列タイプのリストボックスでは、入力あるいは表示される値は 4Dランゲージで制御します。 カラムに 選択リスト を割り当てて、データ入力を制御することもできます。 配列タイプのリストボックスでは、入力あるいは表示される値は 4Dランゲージで制御します。 カラムに 選択リスト を割り当てて、データ入力を制御することもできます。 The values of columns are managed using high-level List box commands (such as LISTBOX INSERT ROWS or LISTBOX DELETE ROWS) as well as array manipulation commands. たとえば、列の内容を初期化するには、以下の命令を使用できます:

ARRAY TEXT(varCol;size)

リストを使用することもできます:

LIST TO ARRAY("ListName";varCol)

警告: 異なる配列サイズの列がリストボックスに含まれる場合、もっとも小さい配列サイズの数だけを表示します。 そのため、各配列の要素数は同じにしなければなりません。 リストボックスの列が一つでも空の場合 (ランゲージにより配列が正しく定義またはサイズ設定されなかったときに発生します)、リストボックスは何も表示しません。

セレクションリストボックス

このタイプのリストボックスでは、列ごとにフィールド (例: [Employees]LastName) や式を割り当てます。 式は 1つ以上のフィールド (たとえば [Employees]FirstName+" "[Employees]LastName) または単にフォーミュラ (たとえば String(Milliseconds)) を使用できます。 式にはプロジェクトメソッド、変数、あるいは配列項目も指定できます。 またLISTBOX SET COLUMN FORMULALISTBOX INSERT COLUMN FORMULA コマンドを使用して、カラムをプログラムで変更することもできます。

それぞれの行はセレクションのレコードを基に評価されます。セレクションは カレントセレクション または 命名セレクションです。

デー タソースがカレントセレクションである場合、データベースに対しておこなわれた変更はリストボックスに自動で反映され、またリストボックスへの変更も自動で データベースに適用されます。 つまりカレントセレクションは常に両方で同じです。

コレクションまたはエンティティセレクションリストボックス

このタイプのリストボックスでは、各カラムに式が割り当てられている必要があります。 各行の中身はコレクション要素ごと、あるいはエンティティセレクションのエンティティごとに評価されます。

コレクションの各要素、またはエンティティセレクションの各エンティティは、This キーワードを用いてオブジェクトとして取得します。 カラムの式にはプロパティパス、プロジェクトメソッド、変数、あるいはフォーミュラが指定可能で、This を通して得た各エンティティあるいはコレクション要素オブジェクトが利用できます。例: This.<propertyPath> (あるいはスカラー値のコレクションの場合は This.value)。 (あるいはスカラー値のコレクションの場合はThis.value)。 カラムをプログラムで変更するには、LISTBOX SET COLUMN FORMULAおよびLISTBOX INSERT COLUMN FORMULA` コマンドを使用します。

データソースがエンティティセレクションの場合、リストボックス側に対しておこなった変更は自動的にデータベースに保存されます。 その一方で、データベース側に対しておこなった変更は、該当エンティティがリロードされてはじめてリストボックス側に反映されます。

エンティティが削除されると、その参照は undefined の値とともにエンティティセレクションに 残り、リストボックスには空白の行が表示されます。 この場合、.clean() 関数を呼び出すことで、削除されたエンティティ参照が含まれないエンティティセレクションを新規に取得することができます。

データソースがコレクションの場合、リストボックス内の値に変更をおこなった場合、その変更はコレクションにも反映されます。 その一方で、コレクションに対して、たとえば Collection クラスの様々な関数を使用して変更をおこなった場合、コレクション変数を自らに再代入することにより明示的に 4D に通知する必要があり、それによってリストボックスのコンテンツは更新されます。 例:

myCol:=myCol.push("new value") // リストボックスに new value を表示

プロパティ一覧

提供されるプロパティはリストボックスのタイプに依存します。

プロパティ配列リストボックスセレクションリストボックスコレクションまたはエンティティセレクションリストボックス
交互に使用する背景色 XXX
背景色 XXX
太字 XXX
背景色式 XX
境界線スタイル XXX
XXX
クラス XXX
コレクションまたはエンティティセレクション XX
カラム自動リサイズ XXX
カレントの項目 X
カレントの項目の位置 X
データソース XXX
詳細フォーム名 X
ヘッダーを表示 XXX
フッターを表示 XXX
行をダブルクリック X
ドラッグ有効 XXX
ドロップ有効 XXX
フォーカス可 XXX
フォント XXX
フォントカラー XXX
フォントカラー式 XX
フォントサイズ XXX
高さ (リストボックス) XXX
高さ (ヘッダー) XXX
高さ (フッター) XXX
追加の空白の行を非表示 XXX
フォーカスの四角を隠す XXX
セレクションハイライトを非表示 XXX
階層リストボックス X
ハイライトセット X
横揃え XXX
横線カラー XXX
横方向パディング XXX
横スクロールバー XXX
横方向サイズ変更 XXX
イタリック XXX
XXX
マスターテーブル X
メタ情報式 X
メソッド XXX
行の移動可 X
命名セレクション X
列数 XXX
スクロールしない列数 XXX
ドラッグしない列数 XXX
オブジェクト名 XXX
XXX
行背景色配列 X
行コントロール配列 X
行フォントカラー配列 X
行の高さ X
行高さ配列 X
行スタイル配列 X
選択された項目 X
選択モード XXX
シングルクリック編集 XXX
ソート可 XXX
標準アクション X
スタイル式 XX
XXX
透過 XXX
タイプ XXX
下線 XXX
変数あるいは式 XX
縦揃え XXX
縦線カラー XXX
縦方向パディング XXX
縦スクロールバー XXX
縦方向サイズ変更 XXX
表示状態 XXX
XXX

リストボックスの列、ヘッダーおよびフッターにもそれぞれ固有のプロパティがあります。

サポートされるフォームイベント

フォームイベント返される追加のプロパティ(主なプロパティについてはForm event を参照してください)コメント
On After Edit
On After Keystroke
On After Sort複合フォーミュラはソート不可
(例: This.firstName + This.lastName)
On Alternative Click配列リストボックスのみ
On Before Data Entry
On Before Keystroke
On Begin Drag Over
On Clicked
On Close Detailカレントセレクション&命名セレクションリストボックスのみ
On Collapse階層リストボックスのみ
On Column Moved
On Column Resize
On Data Change
On Delete Action
On Display Detail
On Double Clicked
On Drag Over
On Drop
On Expand階層リストボックスのみ
On Footer Click配列、カレントセレクション&命名セレクションリストボックスのみ
On Getting Focus追加プロパティの取得はセル編集時のみ
On Header Click
On Load
On Losing Focus追加プロパティの取得はセル編集完了時のみ
On Mouse Enter
On Mouse Leave
On Mouse Move
On Open Detailカレントセレクション&命名セレクションリストボックスのみ
On Row Moved配列リストボックスのみ
On Scroll
On Selection Change
On Unload
On Validate

追加プロパティ

リストボックスやリストボックス列オブジェクトにて発生するフォームイベントは、次の追加プロパティを返すことがあります:

プロパティ説明
areatextリストボックスオブジェクトエリア ("header", "footer", "cell")
areaNametextエリアの名称
columnlongint列番号
columnNametext列の名称
footerNametextフッターの名称
headerNametextヘッダーの名称
horizontalScrolllongint右方向スクロールの場合は正の数値、左方向の場合は負の数値
isRowSelectedboolean行が選択されていれば true、でなければ false
newPositionlongint列あるいは行の変更後の位置
newSizelongint列または行の変更後のサイズ (ピクセル単位)
oldPositionlongint列あるいは行の変更前の位置
oldSizelongint列または行の変更前のサイズ (ピクセル単位)
rowlongint行番号
verticalScrolllongint下方向スクロールの場合は正の数値、上方向の場合は負の数値

"偽" カラムや存在しないカラムにてイベントが発生した場合には、主に空の文字列が返されます。

AltStyle によって変換されたページ (->オリジナル) /