フォームエディターでリストボックスオブジェクトを選択すると、プロパティリストには専用のテーマやプロパティが表示されます。リストボックス列(リストボックス列特有のプロパティ 参照)や列ヘッダー (リストボックスヘッダー特有のプロパティ 参照)や列フッター(リストボックスフッター特有のプロパティ 参照)を選択すると追加の専用プロパティが利用できるようになります。
このテーマにはデータソース プロパティがあり、リストボックスのタイプを設定できます:
カレントセレクション オプションを選択すると、指定したテーブルのカレントセレクションの各レコードごとに式、フィールド、メソッドが評価されます。 命名セレクション オプションを選択すると、指定した命名セレクションに含まれる各レコードごとに式、フィールド、メソッドが評価されます。 配列 オプションを選択すると、リストボックスの各行に配列要素を表示することができます。 SQLクエリーの結果をリストボックスに取得するためには、配列タイプを選択しなければなりません (リストボックスにSQLクエリの結果を表示する 参照)。
このテーマはセレクションタイプのリストボックスの場合にのみ表示されます。カレントセレクションの場合マスターテーブル プロパティが表示され、命名セレクションの場合命名セレクションプロパティ が表示されます。
マスターテーブル : 使用するカレントセレクションが属するテーブルを指定します。このテーブルとそのテーブルのカレントセレクションが、リストボックスの列に割り当てられたフィールドの参照を形成します (フィールド参照やフィールドを含む式)。ある列が他のテーブルのフィールドを参照しているとしても、表示される行の数はマスターテブルのカレントレコード数となります。 このプロパティに割り当てられるメニューには、データベースのすべてのテーブルが表示されます。フォームがどのテーブルに属しているか (テーブルフォームの場合) あるいは属していないか (プロジェクトフォーム) は関係ありません。デフォルトでデータベースの最初のテーブルがプロパティに表示されます。このプロパティの動作に関する詳細はリストボックスにフィールドを表示する を参照してください。命名セレクション : 使用する命名セレクションの名前を指定します。有効な命名セレクションの名前を入力しなければなりません。使用できるのはプロセスあるいはインタープロセス命名セレクションです。リストボックスの内容はこの命名セレクションに含まれるセレクションに基づきます。選択された命名セレクションは、リストボックスが表示される時点で存在し、有効でなければなりません。そうでない場合、リストボックスは空で表示されます。名前エリアを空にしても、リストボックスは空で表示されます。 注: 命名セレクションはソート済みのレコードリストです。これはセレクション中のカレントレコードと並び順をメモリーに保持するために使用されます。詳細は4Dランゲージリファッレンスの命名セレクション を参照してください。
このテーマには、基本的なオブジェクトプロパティがすべて集められています。
列数 : リストボックスに表示される列の数 (デフォルトは1)。コンテキストメニューを使用して (列または列ヘッダをクリック)、列数を変更することができます (列の追加、複製、削除):スクロールしない列数 : ユーザーがリストボックスを横にスクロールしても、リストボックスの左側に常に表示される列の数を指定します。スクロールしない列は通常の列と同様、幅の リサイズ、セルへの入力などが可能です。リストボックス中での位置が固定されるだけであり、これは例えば第一列に行のタイトル (名前など) が表示されている場合に便利です。 横スクロールしない列がプログラムで削除されると、横スクロールしない列数は1減少します。同様に横スクロールしないエリアに列がプログラムで挿入されると、この列は自動で横スクロールしない列になります。 ドラッグしない列数 : 実行時にドラッグで移動できない列の数。この値は、リストボックスの一番目の列から数えた固定列の数を表わします。すべての列の移動を禁止するに は、この値と列の合計数とを同じにしなくてはなりません。このプロパティは非表示の列も計算に入れる点に注意してください。 このプロパティのデフォルト値は、階層モードが無効の (階層リストボックスオプションがチェックされていない) 場合0であり、これはすべての列が移動可能であることを意味します。階層モードが有効の場合 (配列タイプのリストボックスのみ)、このオプションは常に1以上です。注 : これらの機能の違いについては後述の"横スクロールしない列とドラッグしない列"を参照してください。列のヘッダを表示 : 列ヘッダの表示/非表示を指定します (デフォルトは表示)。 ハイライトセット : このプロパティはセレクションタイプのリストボックスでのみ利用できます。このプロパティを使用して、リストボックス中でハイライトされたレコードを管理するために使用するセット名を指定します (配列 データソースが指定されている場合、リストボックスに割り当てた変数と同じ名前のブール配列を使用します)。 4DはListBoxSetN (N は 0 から始まり、フォーム上のリストボックスオブジェクトの数に従い増分されます) という名前のデフォルトセットを作成しますが、必要に応じてこの名前を変更できます。セットはローカル、プロセスおよびインタープロセスセットを使用でき ます (ネットワークトラフィックを制限するため、"$LBSet"のような名前のローカルセットの使用を推奨します)。指定されたセットは4Dが自動で管理し ます。ユーザーが1つ以上の行を選択すると、セットは即座に更新されます。プログラムを使用して行を選択したい場合、" セット"テーマのコマンドをこのセットに適用できます。注 : リストボックス行のハイライトステータスとテーブルレコードのハイライトステータスは完全に独立しています。 “ハイライトセット”プロパティに名前が指定されていない場合、リストボックス中で行を選択することはできません。 行スタイル配列 (配列タイプリストボックス) / 行スタイル (セレクションタイプリストボックス): リストボックスの各行にカスタマイズされた文字スタイルを適用するために使用します。配 列タイプのリストボックスの場合、倍長整数配列名を入力します。この配列の各要素がリストボックスの行に対応します。この配列のサイズは列に割り当てた配 列と同じでなければなりません。(メソッドを使用して) 配列を埋めるためには、“Font Styles”テーマの定数を使用します。定数を加算することでスタイルを合成できます。リストボックスのプロパティで設定したスタイルを行に適用するた めには、配列の対応する要素に値-255を渡します。 セレクションタイプのリストボックスの場合、式または変数 (配列を除く) を入力します。式や変数は各行が表示される際に評価されます。式を指定する際にフォーミュラエディターを使用することができます。これを行うには、エリア を選択したときに表示される[...]ボタンをクリックします。“Font Styles”テーマの定数を使用することができます。 以下の例は変数名を使用しています。行スタイル エリアにCompanyStyle と入力され、フォームメソッドにOn Display Detail で実行される以下のコードが書かれています: 行フォントカラー配列 (配列タイプリストボックス) / 行フォントカラー (セレクションタイプリストボックス): リストボックスの各行にカスタマイズしたフォントカラーを適用するために使用します。RGBカラーを使用しなければなりません。この点に関する詳細は4D ランゲージリファレンスマニュアルのOBJECT SET RGB COLORS コマンドの説明を参照してください。行背景色配列 (配列タイプリストボックス) / 行背景色 (セレクションタイプリストボックス): リストボックスの各行にカスタマイズされた背景色を適用するために使用します。RGBカラー値を使用しなければなりません。この点に関する詳細は4Dラン ゲージリファレンスマニュアルのOBJECT SET RGB COLORS コマンドの説明を参照してください。配列タイプのリストボックスの場 合、倍長整数配列名を入力します。この配列の各要素がリストボックスの行に対応します。この配列のサイズは列に割り当てた配列と同じでなければなりませ ん。“SET RGB COLORS”テーマの定数を使用できます。リストボックスプロパティで設定した背景色を行に適用するには、配列の対応する要素に値-255を渡します。 セレクションタイプのリストボックスの場合、式または変数 (配列を除く) を入力します。式や変数は各行が表示される際に評価されます。式を指定する際にフォーミュラエディターを使用することができます。これを行うには、エリア を選択したときに表示される[...]ボタンをクリックします。“SET RGB COLORS”テーマの定数を使用することができます。 行管理配列 (配列タイプリストボックスのみ): リストボックスの任意の行の"非表示"、"無効化"、"選択可能"プロパティを管理するために使用します。リストボックス内の要素数と同じ数を含んでいる倍長整数型の配列の名前を入力しなければなりません。配列の各要素は対応する行の以下のステータスを表します:表示または非表示(デフォルトは非表示) 有効化または無効化(デフォルトは有効化) 選択可能あるいは選択不可(デフォルトは選択可能) 配列が指定されていないか、配列が空の場合、リストボックスのすべての行が表示されます。デフォルトでつきあされた行は表示されます。 行 の非表示はリストボックスの表示にのみ影響します。非表示行は依然として配列に存在し、プログラムで管理可能です。ランゲージコマンド、特にLISTBOX Get number of rows やLISTBOX GET CELL POSITION はリストボックス行の表示/非表示の影響を受けません。例えば10行あるリストボックスで先頭の9行が隠されている場合、LISTBOX Get number of rows は10を返します。 ユーザーの視点から見た場合、リストボックス中に非表示行があることは視認できません。表示されている行だけが選択できます (例えばすべてを選択コマンドを使用して)。対応する配列の要素に定数を割り当てる事によって、それぞれの行のプロパティを設定することができます。詳細な情報については、行の表示を管理 の章を参照して下さい。
互換性に関する注意: 以前のバージョンの4Dでは、このプロパティは"非表示行配列"という名前でブール型の配列を受け取りました。互換性のため、行管理配列に対してもブール型の配列は利用可能です。この場合、それぞれの要素はリストボックス内で対応する行の表示/非表示ステータスを示します。True は行が非表示状態であり、False は行が表示状態であることを意味します。行管理配列 プロパティはLISTBOX SET ARRAY とLISTBOX Get array を使用して設定あるいは読み込みをすることができます。またこの配列は、LISTBOX GET ARRAYS コマンドによっても返されます。
選択モード : リストボックス行の選択モードを指定するために使用します。3つのモードから選択できます:なし : 行を選択することはできず、データを入力することもできません(ただし"シングルクリック編集"オプションがチェックされている場合を除きます。詳細は 入力テーマ 参照)。選択とデータ入力はプログラムからのみ可能です。リスト中でクリックやダブルクリックしても (たとえ入力可 オプションが選択されていても) 何も効果はありませんが、On Clicked やOn Double Clicked イベントは生成されます。このモードでは、開発者が (ハイライトセットを使用して) セレクションに関して、(EDIT ITEM コマンドを使用して) データ入力に関して完全なコントロールを持ちます。On Selection Change とOn Before Data Entry イベントは生成されません。他方On After Edit イベントはユーザーがEDIT ITEM コマンドを通してデータを入力した際に生成されます。単一 : 一度に一行のみ選択できます。複数 : 標準のショートカットを使用して複数行を選択できます。Shift+クリック で連続した行を、Ctrl+ クリック (Windows) や Command+ クリック (Mac OS) で非連続行を選択できます。行をダブルクリック (セレクション型のリストボックスのみ): ユーザーがリストボックスの列をダブルクリックした際に実行されるアクションを設定します。選択可能なオプションは以下の通りです:何もしない (デフォルト): 行をダブルクリックしても自動アクションは何も発動しません。レコード編集 : 行をダブルクリックすると、リストボックスに対して定義された詳細フォーム内の対応するレコードが表示されます(以下の「詳細フォーム」セクションを参照して下さい)。レコードは読み書き可能モードで開かれるので、編集が可能です。レコード表示 : レコード編集と同様の挙動をしますが、レコードは読み出し専用モードで開かれるので編集はできません。注: 空の行へのダブルクリックは無視されます。 選択されているアクションに関わらず、On Double clicked フォームイベントが生成されます。 「レコード編集」・「レコード表示」のアクションに関してはOn Open Detail フォームイベントも生成されます。リストボックスに関連付けられた詳細フォームに表示されたレコードが閉じられる際にはOn Close Detail フォームイベントが生成されます(レコードが編集されたかどうかは問いません)。
詳細フォーム (セレクション型のリストボックスのみ): リストボックスの個々のレコード編集・表示の際に使用するフォームを指定します。 指定されたフォームは以下のタイミングで表示されます:
リストボックスに関連付けられているサブレコード追加 またはサブレコード編集 の標準アクションを使用したとき(標準アクションの使用 を参照して下さい)。 行をダブルクリック のプロパティが「レコード編集」か「レコード表示」になっている行をダブルクリックしたとき(前述の「行をダブルクリック」のセクションを参照して下さい)。
リストボックスの横スクロールしない列とドラッグしない列はそれぞれ独立して動作します:
横スクロールしない列は常にリストボックスの左側に表示されます。横スクロールされません。 ドラッグしない列はリストボックス中でドラッグ&ドロップによる列の移動ができません。 注: 横スクロールしない列とドラッグしない列を設定できます。詳細は4Dランゲージリファレンスのリストボックス を参照してください。
これらのプロパティは以下のように相互作用します:
列をドラッグしないのみに設定した場合、その列は移動することができません。 列を横スクロールしないのみに設定した場合、横スクロールしないエリア内ではドラッグで列を移動することができます。しかしエリアを越えて移動することはできません。 横スクロールしない列とドラッグしない列を同じ数に設定した場合、スクロールしないエリア内ではドラッグで移動することもできません。 必要に応じて横スクロールしない列数とドラッグしない列数をそれぞれ設定できます。例えば横スクロールしない列を 3、ドラッグしない列を 1に設定した場合、ユーザーは横スクロールしないエリア内で右側 2 つの列を入れ替えることができます。
これらのテーマではリストボックス列のヘッダーとフッターの表示と高さを管理します。ヘッダーとフッターにはフォーム実行中、ユーザーが直接入力を行うことはできません。表示内容は常に計算で求められます。
ヘッダーを表示 / フッターを表示 : 列ヘッダーやフッターの表示/非表示を設定します。このプロパティを選択していない場合、このエリア内のその他のプロパティを設定することはできません。 リストボックス中でこれらのエリアが表示されたら、クリックして選択し、プロパティリストから個別のプロパティを設定できます (リストボックスヘッダー特有のプロパティ とリストボックスフッター特有のプロパティ 参照)。列には1つのヘッダー1つのフッターを表示できます。それぞれは個別に設定できます。デフォルトで非表示 : 他のフォームオブジェクトと同様、この設定を使用してOBJECT SET VISIBLE コマンドを使用したオブジェクトの表示に関する制御を容易にできます。OBJECT SET VISIBLE コマンドは対応する"ヘッダーを表示"や"フッターを表示"オプションがリストボックスのプロパティリストで選択されていない場合、効果がありません。 高さ : ヘッダーやフッターの高さを設定するために使用します。まず高さの単位を設定できます (行 またはピクセル )。この点に関する詳細は高さの単位 (ピクセルまたは行) を参照してください。 デフォルトでヘッダーとフッターの高さは1行 です。警告 : ピクセル単位でのヘッダーの最小高さはシステムにより異なります。最小値よりも小さな値を指定した場合、最小値で置き換えられます。行とフッターには最小値がありません。互換性に関する注意 : Windows 7とWindows Vistaではヘッダーの最小高さは24ピクセルです。変換されたデータベースで高さがこれよりも小さな値に設定されていた場合、自動でリサイズされます。この場合、それに応じてフォームを変更する必要があるかもしれません。 ヘッダーやフッターの高さはLISTBOX SET HEADERS HEIGHT やLISTBOX SET FOOTERS HEIGHT コマンドを使用して設定することもできます。
ヘッダー、フッター、および行の高さをピクセル またはテキスト行 単位で設定できます。プロパティリストで高さフィールドのボタンを使用して単位を変更できます。
または高さを入力するエリアに直接単位を入力することもできます。行単位の場合は "L"、ピクセル単位の場合は "P" を入力します ( 例えば "17 P")。ボタンラベルは入力に基づき更新されます。
同じリストボックス内でヘッダーとフッター異なる単位を使用することもできます:
"ピクセル" を使用した場合、指定された値は関連する行に対し直接適用されます。列に使用されるフォントサイズ等は考慮されません。フォントが行の高さに対して大きい場合、テキストは切り取られます。ピクチャーはフォーマットに基づき切り取られるかリサイズされます。 "行" を使用した場合、高さは関連する行のフォントサイズに合わせて計算されます。複数の異なるサイズが設定されている場合、4D はもっとも大きなものを使用します。例えば行に "Verdana 18", "Geneva 12" そして "Arial 9" が設定されている場合、4D は行の高さの決定に "Verdana 18" を使用します。複数行の場合はこの高さの倍数が使用されます。 この計算にはピクチャーのサイズやフォントに適用されるスタイルは考慮されません。 OS X環境下では、選択されたフォントで使用できない文字をユーザーが入力した場合、行の高さが正しくなくなる可能性があります。この場合には代理フォントが使用され、その結果サイズにばらつきが出る可能性があります。 単位の変換 : 単位を変更した場合、4D は自動で値を再計算し、結果をプロパティリストに表示します。例えば使用されるフォントが "Lucida grande 24" で高さが "1 行 " に設定されていれば "30 ピクセル " に、"2 行" なら "60 ピクセル " になります。
単位の変更を繰り返すと、4D が自動で計算を行うため、最初の値とは結果が異なってしまうこともあります。例えば以下のようになります :
(Arial 18): 52 ピクセル -> 2 行 -> 40 ピクセル
(Arial 12): 3 ピクセル -> 0.4 行が 1 行に変換される -> 19 ピクセル
このテーマにはリストボックス中に表示されるグリッドラインに関連するプロパティが集められています。
水平線 : リストボックスの水平線の表示/非表示を設定します (デフォルトで表示)。水平線カラー : リストボックスの水平線のカラーを設定します (デフォルトでグレー)。垂直線 : リストボックスの垂直線の表示/非表示を設定します (デフォルトで表示)。垂直線カラー : リストボックスの垂直線のカラーを設定します (デフォルトでグレー)。
このテーマはリストボックスのデータソースが配列 である場合にのみ利用できます。この設定を使用してリストボックスの階層表示を設定します。リストボックスオブジェクトのポップアップメニューを使用して階層を定義すると、自動でこれらのプロパティは更新されます (階層リストボックスの作成と利用 参照)。
階層リストボックス : リストボックスを階層形式で表示する場合、選択します。Variable 1 ... 10 : これら追加のオプションは階層リストボックス オプションが選択されると表示されます。入力欄に値が入力されると、新しい入力欄が追加されます。10個までの変数を指定できます。 これらの変数は先頭の列に表示される階層のレベルを設定します。 Variable 1は常に、リストボックスの最初の列の変数名に対応します (2つの値が自動でバインドされます)。このVariable 1欄は常に表示され、入力できます。例: country Variable 2も常に表示され、入力できます。これは二番目の階層レベルを指定します。例: regions 三番目以降の欄は、その前の番号の欄が入力されると表示されます。例えば: counties、cities等。最大10レベルまで指定できます。 ある階層レベルの値を削除すると、そのあとの階層レベルが調整されます。 最後の変数に複数の同じ値が存在しても、この変数が階層になることはありません。例えばarr1 にA A A B B B、arr2 に1 1 1 2 2 2、そしてarr3 にX X Y Y Y Zが値として設定されています。この場合、A、B、1、そして2は階層で表示できますが、XとYは階層になりません: + A + 1 X X Y + B + 2 Y Y Z この原則は階層がひとつだけ設定されている場合には適用されません。この場合、同じ値はグループ化されます。注: 既存のリストボックスで階層を設定した場合、(最初のものを除き) これらの列を削除または隠さなければなりません。そうしないとそれらはリストボックス中で重複して表示されます。エディターのポップアップメニューを使用して階層を設定すると (階層リストボックスの作成と利用 参照)、不要な列は自動でリストボックスから取り除かれます。
このテーマにはリストボックスの座標や幅、高さに関するプロパティが集められています。
行の高さ プロパティは特別です。このプロパティはリストボックス行の高さを設定します。ヘッダーやフッターの高さはそれぞれのプロパティリストテーマで別に設定します。
高さはピクセル または行 単位で設定できます。
単位の選択については上記"高さの単位 (ピクセルまたは行)"を参照してください。
デフォルトで行の高さはプラットフォームとフォントサイズに基づき設定されます。
4D View Proのみ: この機能には4D View Proライセンスが必要です。詳細な情報については、4D View Pro を参照して下さい。
このプロパティはリストボックスに対して指定したい行高さ配列の名前を指定するのに使用します。行高さ配列は数値型である必要があります(デフォルトは倍長整数)。
行高さ配列が定義されているとき、0ではない値の要素は、それぞれリストボックス内で対応する行の高さを決定する際に、カレントの行の高さ単位に基づいて考慮されます。
例えば、以下のように書く事ができます:
ARRAY LONGINT (RowHeights ;20)
RowHeights{5}:=3
ここで行の単位が"行"であったとすると、リストボックスの5行目は3行分の高さになる一方、他の行はデフォルトの高さを保ちます。
行の高さはLISTBOX SET ROW HEIGHT コマンドを使用する事によっても管理可能です。
注: 行高さ配列 プロパティは、階層リストボックスに対しては効力を持ちません。
このテーマにはリストボックスオブジェクトがリサイズされた際のリストボックスを設定するオプションを格納しています。リサイズオプションはユーザーによるもの、プログラミングによるものの(例:OBJECT SET COORDINATES コマンドの使用)両方に適用されます。
水平方向のリサイズ / 垂直方向リサイズ : これらの標準オブジェクト表示プロパティはリサイズ の段落に詳細な説明があります。カラム自動リサイズ : このプロパティがチェックされているとき、リストボックスカラムは定義された最大幅と最小幅の範囲の中でリストボックスと共に自動的にリサイズされます(以下[#title id="8577" anchor="2896176"/]をご覧下さい)。 このプロパティがチェックされていないとき(4D v16以前から変換されたデータベースにおけるデフォルト)、プロパティリスト内で定義された最大値を幅が超えたとしても、リストボックス内で最も右のカラムのみがリサイズされます。
このテーマには、リストボックスへのデータ入力に関する標準のプロパティが含まれています。
シングルクリック編集 プロパティは特定の目的に使用されます。これを使用すると単一のアクションで編集モードに移行できます。
このオプションがチェックされている場合、そのリストボックスが事前に選択されていたかどうかに関わらず、単一のユーザークリックだけでリストボックスセルを編集モードへと移行させる事ができます。このオプションは、リストボックスの選択モードが"なし"に設定されていた場合でもセルの編集を可能にすると言うてんに注意して下さい(リストボックステーマ を参照して下さい)。
このオプションがチェックされていない場合、セルの内容を編集するためにはユーザーはまず最初に編集したいセルの行を選択し、その次に編集するセルを選択する必要があります。これは4D v15 R3以前のバージョンでは標準の仕様でした。互換性のために、このオプションはデフォルトではチェックされていません。
このテーマには、リストボックスの全体的な表示に関する二つのプロパティが含まれています:
このテーマには行の背景色と境界線スタイルに関連するプロパティが集められています。
背景色 : リストボックスの背景色を設定します。この色はヘッダー部を除くオブジェクト船体に使用されます。 奇数行背景色 : リストボックスの奇数行に異なるカラーを設定するために使用します。奇数行背景色を設定することで、配列を読みやすくなります。 行背景色配列 (配列型リストボックス)/行背景色 (セレクション型リストボックス): カスタムの背景色をリストボックスのそれぞれの行に適用するのに使用されます。ここにはRGBカラー値を使用して下さい。これについての詳細な情報に関しては、4Dランゲージリファレンス マニュアルのOBJECT SET RGB COLORS コマンドの説明を参照して下さい。配列型のリストボックスに対しては、倍長整数型の配列の名前を入力して下さい。配列のそれぞれの要素はリストボックスの行に対応します。配列は関連づけられているカラムの配列と同じサイズでなければいけません。ここではSET RGB COLORS テーマの定数を使用する事ができます。リストボックスプロパティで指定されている背景色を行に対して適用させるためには、配列の対応する要素に-255の値を渡します。 セレクション型リストボックスに対しては、式または変数を入力して下さい(ただし配列は除く)。式または変数は、表示されるそれぞれの行に対して評価されます。式を指定するのにフォーミュラエディターを使用する事もできます。使用するにはエリアを選択した際に現れる[...]ボタンをクリックしてください。ここではSET RGB COLORS テーマの定数を使用する事ができます。 境界線スタイル : リストボックスの境界線のスタイルを設定します。余分な空白行を表示しない :リストボックスオブジェクト下部に追加される余分な空白行の表示を管理します。デフォルトで、4Dは空のエリアを埋めるためにこのような行を追加します: このオプションをチェックすると、これらの空白行を除去することができます。リストボックスオブジェクトの下部は空のままになります:
このテーマにはリストボックスに表示されるテキストの定義に関する標準のプロパティ(スタイルシート、フォント、スタイル)がグループ化されています。また、リストボックスのセル毎のテキスト表示の設定に使用されるいくつかのプロパティがあります:
行スタイル配列 (配列タイプリストボックス) / 行スタイル (セレクションタイプリストボックス): リストボックスの各行にカスタマイズされた文字スタイルを適用するために使用します。配 列タイプのリストボックスの場合、倍長整数配列名を入力します。この配列の各要素がリストボックスの行に対応します。この配列のサイズは列に割り当てた配 列と同じでなければなりません。(メソッドを使用して) 配列を埋めるためには、“Font Styles”テーマの定数を使用します。定数を加算することでスタイルを合成できます。リストボックスのプロパティで設定したスタイルを行に適用するた めには、配列の対応する要素に値-255を渡します。 セレクションタイプのリストボックスの場合、式または変数 (配列を除く) を入力します。式や変数は各行が表示される際に評価されます。式を指定する際にフォーミュラエディターを使用することができます。これを行うには、エリア を選択したときに表示される[...]ボタンをクリックします。“Font Styles”テーマの定数を使用することができます。 以下の例は変数名を使用しています。行スタイル エリアにCompanyStyle と入力され、フォームメソッドにOn Display Detail で実行される以下のコードが書かれています: 行フォントカラー配列 (配列タイプリストボックス) / 行フォントカラー (セレクションタイプリストボックス): リストボックスの各行にカスタマイズしたフォントカラーを適用するために使用します。RGBカラーを使用しなければなりません。この点に関する詳細は4D ランゲージリファレンスマニュアルのOBJECT SET RGB COLORS コマンドの説明を参照してください。非表示行配列 (配列タイプリストボックスのみ): リストボックスの任意の行を非表示にするために使用します。ブール配列名を入力しなければなりません。この配列サイズはリストボックスの行数と同じでなけ ればなりません。配列の各要素はリストボックス行の表示/非表示ステータスを表します:行を隠すにはTrueを渡します。 行を表示するにはFalseを渡します。 配列が指定されていないか、配列が空の場合、リストボックスのすべての行が表示されます。デフォルトでつきあされた行は表示されます。 行 の非表示はリストボックスの表示にのみ影響します。非表示行は依然として配列に存在し、プログラムで管理可能です。ランゲージコマンド、特にLISTBOX Get number of rows やLISTBOX GET CELL POSITION はリストボックス行の表示/非表示の影響を受けません。例えば10行あるリストボックスで先頭の9行が隠されている場合、LISTBOX Get number of rows は10を返します。 ユーザーの視点から見た場合、リストボックス中に非表示行があることは視認できません。表示されている行だけが選択できます (例えばすべてを選択コマンドを使用して)。選択モード : リストボックス行の選択モードを指定するために使用します。3つのモードから選択できます:なし : 行を選択することはできず、データを入力することもできません。選択とデータ入力はプログラムからのみ可能です。リスト中でクリックやダブルクリックしても (たとえ入力可 オプションが選択されていても) 何も効果はありませんが、On Clicked やOn Double Clicked イベントは生成されます。このモードでは、開発者が (ハイライトセットを使用して) セレクションに関して、(EDIT ITEM コマンドを使用して) データ入力に関して完全なコントロールを持ちます。On Selection Change とOn Before Data Entry イベントは生成されません。他方On After Edit イベントはユーザーがEDIT ITEM コマンドを通してデータを入力した際に生成されます。単一 : 一度に一行のみ選択できます。複数 : 標準のショートカットを使用して複数行を選択できます。Shift+クリック で連続した行を、Ctrl+ クリック (Windows) や Command+ クリック (Mac OS) で非連続行を選択できます。横揃え : セルの内容を左 、中央 、または右 に揃えるために使用されます。デフォルト オプションを選択した場合、各列のデータ型に基づき整列方向が決定されます。テキストやピクチャーは左、数値は右です。縦揃え : セルの内容を上 、中央 、または下 に揃えるために使用されます。デフォルト オプションを選択した場合、各列のデータ型に基づき整列方向が決定されます。ピクチャーを除き、すべて下です。ピクチャーは上です。整列プロパティはリストボックスレベルで全体に、またはそれぞれの列ごとに個々に適用できます(スタイルとカラーの管理 を参照して下さい)。さらに、横揃え/縦揃えのプロパティはヘッダー/フッターエリアにも設定できます。
このテーマではリストボックスの動作に関連するプロパティを設定します。
メソッド (編集...): このボタンをクリックすると、リストボックスオブジェクトのメソッドがメソッドエディターで開かれます (各列にもオブジェクトメソッドを記述できる点に留意してください)。ドラッグ可 とドロップ可 : リストボックスのドラッグ&ドロップ機能を有効にします。これによりリストボックス行と他のリストボックスあるいは他の4Dオブジェクト間のドラッグ&ドロップが可能になります。リストボックスの行だけが関連します。列をドラッグ&ドロップすることはできません (リストボックス内で列を移動することはできます)。 リストボックス内でのドラッグ&ドロップは4D標準のドラッグ&ドロップメカニズムを使用して管理されます (On Drop とOn Drag Over フォームイベント、DRAG AND DROP PROPERTIES とDrop position コマンド)。行の移動可 (配列タイプのリストボックスのみ): 実行時に行の移動を許可します。このオプションはデフォルトでチェックされています。セレクションタイプや (階層リストボックス オプションがチェックされている) 階層リストボックスではこのオプションを使用できません。並び替え可 : ヘッダーのクリックによる列データの並び替えを有効にします。このオプションはデフォルトで選択されています。 ピクチャー型配列 (列) はこのメカニズムではソートできません。 レコードのセレクションに基づくリストボックスの場合、標準の並び替え機能は以下の場合のみ有効です:データソースがカレントセレクションであり、 その列にフィールドが割り当てられていること (文字、数値、日付、時間、およびブール型)。 他の場合 (命名セレクションに基づくリストボックスや式が割り当てられた列)、標準の並び替え機能は動作しません。 標準のリストボックス並び替えは、データベースのカレントセレクションの順番を変更します。しかしハイライトされたレコードと、カレントレコードは変更されません。 標準の並び替えは、式が割り当てられた列も含め、リストボックスのすべての列を同期します。
このテーマにあるスクロールエリア オプションを使用して、以前のスクロールエリアの動作をエミュレートできます。以前のスクロールエリアはv13以降に変換すると自動でリストボックスに変換されます。なおこの互換性チェックボックスはすべてのリストボックスで利用できます:
リストボックスでこのオプションが選択されていると以下の特別な動作を行うようになります:
リストボックス列配列に非表示プロパティが設定されていると、リストボックス全体が非表示になります。 リストボックス列の配列変数に数値を代入すると、当該行が選択されます ( 例 : MyArray:=5 とするとリストボックス中 5 番目の要素が選択されます )。 逆に行をクリックすると列配列の現在値が更新されます。 リストボックス行から他のオブジェクトにドロップが行われたとき、このオブジェクト内で実行されるDRAG AND DROP PROPERTIES コマンドは (リストボックス自身ではなく) リストボックス列への配列を返します。
グループ化されたスクロールエリアがリストボックスに変換されると、それらは接続されます。接続されたリストボックスは連携して動作します:
ひとつのリストボックス上で行を選択すると、接続されたグループに属するすべてのリストボックスの同じ行が選択されます。 リストボックスをスクロールすると、接続されたグループに属するすべてのリストボックスがスクロールされます。 注: 変換されたリストボックスはフォーム上でグループ化 されています。
フォームエディターのオブジェクトメニューから、新しい接続および切断メニューを使用して、これらのリストボックスの接続 / 切断を切り替えることができます:
これらのコマンドはフォームエディター上で適切なリストボックスが選択されている場合に有効となります。接続されたリストボックスが選択されている場合、そのリストボックスに接続されたすべてのリストボックス上に特別なバッジが表示されます :
互換性に関する注意 : この動作原理を用いて、グループ化されたスクロールエリアの動作を再現します。しかしこの動作を標準のリストボックスに置き換えることを推奨します。