4th Dimension 2004 では、リストボックスという新しいタイプのフォームオブジェクトが 提供されています。
リストボックス
リストボックスは、同期化されたカラムとしてデータの表示や入力を行えるエリアです。
これらのオブジェクトは、以前のバージョンの 4th Dimension における グループ化した スクロールエリア と同じですが、各種機能は削除、または拡張されています(値入力、
カラムの並び替え、外観のカスタマイズ、ドラッグ&ドロップなど)。リストボックスタ イプのオブジェクトはすべて、4th Dimension の「フォーム」エディタで設定可能であり、
また、プログラムからも処理することができます。
この節では、「フォーム」エディタにおけるリストボックスタイプのオブジェクトの作成 および設定に関する新機能について説明します。プログラム上でこれらオブジェクトを 管理する上での情報については、後述の「リストボックス」の節を参照してください。
主な特徴
リストボックスは 1 つ以上のカラムを含み、それらの内容は自動的に同期化されます。デ フォルトとして、作成時にリストボックスは 1 つのカラムを含みます。コンテキストメ ニュー(カラムヘッダをクリック)を使用するか、リストボックスのプロパティにおい て、カラム数を変更することができます(カラムの追加、コピー、削除)。
理論上、カラム数に制限はありません(マシン資源に依存)。
リストボックスの各カラムは、4D 配列に関連付けられています。デフォルトとして、4th Dimension はカラムの各変数、つまり関連する各配列に対し ColumnX という名前を割 り当てます。この名前はカラムのプロパティで変更することができます。リストボック スに入力、または表示された値の管理は、4th Dimension ランゲージを用いて行います。
この件に関する詳細は、後述の「 リストボックス オブジェクトタイプのプログラミン グ入門」の節を参照してください。入力を管理するために、リストをカラムに関連付け ることができます(後述の「リストボックス固有のプロパティ」の節を参照)。
リストボックスは、オブジェクト全体、カラム、カラムヘッダという異なる 3 つの部分か ら成り立ちます。「フォーム」エディタで、これらの部分を別々に選択することもできま す。
各部分には、それぞれ独自のオブジェクトと変数名、ならびに固有のプロパティがあり ます。
例えば、カラム数や各行の代替カラーはリストボックスのオブジェクトプロパティで定 義します。各カラムの幅は、カラムプロパティで指定し、ヘッダのフォントはヘッダプ ロパティで定義します。
「ユーザ」モード
「ユーザ」モードでは、リストボックスを使用してデータをリストとして表示、または入 力することができます。
セルを入力可にするには(そのカラムの入力が許可されている場合)、セルに納められて いる値をダブルクリックします。
また、ヘッダをクリックしてカラムの値を並び替えることができます。複数回クリック することにより、並び替えはアルファベット順、降順、昇順と交互に行われます。
すべてのカラムは自動的に同期化されます。
各カラムのサイズを変更することも可能です。
リストボックス オブジェクト ヘッダ カラム
ユーザはマウスを用いてカラムや行を移動し、その順序を変更することができます(こ の動作が許可されている場合)。
最後に、標準のショートカットを使い、1 つ以上の行を選択することができます。連続す る行の選択には Shift+ クリック、連続していない行の選択には Ctrl+ クリック(Windows)
または Command+ クリック(Mac OS)を使用します。
カラムの並び替え リサイズマーカ
カラムの移動
これらの機能はすべて、リストボックス、カラム、ヘッダのプロパティを用いて処理す ることができます。この件については、次の節で詳しく説明します。
リストボックス固有のプロパティ
「フォーム」エディタ上でリストボックスオブジェクトを選択すると、次のようなプロパ ティの一覧が表示されます。
この節では、リストボックスオブジェクトに固有のプロパティについて説明します。
■「リストボックス」テーマ
このテーマには、基本的なオブジェクトプロパティがすべて集められています。
■列の数:リストボックスに表示されるカラム数(デフォルトは 1)。コンテキストメ ニュー(カラムやカラムヘッダをクリック)を使用して、カラム数を変更すること ができます(カラムの追加、コピー、削除)。
■固定列の数:「ユーザ/カスタム」モードで移動できないカラムの数。この値は、
リストボックスの一番目のカラムから数えた固定カラムの数を表わします。あらゆ るカラムの移動を禁止するには、この値とカラムの合計数とを同じにしなくてはな りません。このプロパティは、非表示カラムも計算に入れる点に注意してください。
このプロパティのデフォルト値は 0 であり、これはすべてのカラムが移動可能であ ることを意味します。
新しいMOVED LISTBOX COLUMN NUMBERコマンドを使用すると、リストボッ クスカラムの移動を管理することができます。
■列のヘッダを表示:カラムヘッダの表示/非表示を指定します(デフォルトは表 示)。
■複数選択:複数行の選択を許可、または禁止します。デフォルトでは、標準の ショートカットを用いて複数行を選択することができます。連続した行の選択には Shift キー + クリック、連続していない行の選択には Ctrl キー + クリック(Windows)
または Command キー + クリックを使用します。
このオプションをチェックしない場合、リストボックスの行は一行ずつしか選択で きません。
■行スタイル配列:リストボックスの各行に対して独自の文字スタイルを割り当る際 に使用する、倍長整数配列の名前を入力することができます。この配列の各要素は、
リストボックスの行に対応します。つまり、この配列のサイズはカラムに関連付け た配列のサイズと同じでなくてはなりません。配列へ値を代入するには(メソッド を使用)、「フォントスタイル」テーマの定数を使用します。定数を加えることによ り、スタイルを組み合わせることができます。リストボックスのプロパティで定義 されたスタイルを行に適用するには、対応する配列の要素に対して-255 という値を 渡します。
■行フォントカラー配列:リストボックスの各行に対して独自の文字フォントカラー を割り当る際に使用する、倍長整数配列の名前を入力することができます。この配 列の各要素は、リストボックスの行に相当します。つまり、この配列のサイズはカ ラムに関連付けた配列のサイズと同じでなくてはなりません。
この配列には RGB カラーの値を代入しなくてはなりません(メソッドを使用)。こ の件に関する詳細は、SET RGB COLORSコマンドを参照してください。
リストボックスのプロパティで定義されたフォントカラーを行に適用するには、対 応する配列の要素に対して-255 という値を渡します。
■行背景色配列:リストボックスの各行に対して独自の背景色を割り当る際に使用す る、倍長整数配列の名前を入力することができます。この配列の各要素は、リスト ボックスの行に相当します。つまり、この配列のサイズはカラムに関連付けた配列 のサイズと同じでなくてはなりません。
この配列には RGB カラーの値を代入しなくてはなりません(メソッドを使用)。こ の件に関する詳細は、SET RGB COLORSコマンドを参照してください。
リストボックスのプロパティで定義された背景色を行に適用するには、対応する配 列の要素に対して-255 という値を渡します。
■「グリッドライン」テーマ
このテーマには、リストボックスオブジェクトに表示されるグリッドに関連するプロ パティがすべて集められています。
■横線:リストボックスの水平ラインの表示や非表示を設定します(デフォルトは表 示)。
■横線色:リストボックスの水平ラインのカラーを設定します(デフォルトはグ レー)。
■縦線:リストボックスの垂直ラインの表示や非表示を設定します(デフォルトは表 示)。
■縦線色:リストボックスの垂直ラインのカラーを設定します(デフォルトはグ レー)。
■「位置調整&サイズ調整」テーマ
このテーマには、リストボックスの座標や幅、高さに関連するプロパティがすべて集 められています。
「行の高さ」プロパティは固有のものです。このプロパティを使用して、リストボック スの行の高さを指定することができます(ピクセル単位)。この高さはヘッダに対して も適用されます。デフォルトとして、行の高さはプラットフォームやフォントサイズ に応じて定義されます。
■「リサイズオプション」テーマ
このテーマには、フォームサイズが変更された場合のリストボックスの対応に関する 標準的なプロパティがすべて集められています。
■「表示」テーマ
このテーマには、フォームにおけるリストボックスの表示ステータスに関する標準的 なプロパティがすべて集められています。「デフォルトで非表示」プロパティに関する 詳細は、後述の「新しいデフォルトで非表示プロパティ」の節を参照してください。
■「アピアランス」テーマ
このテーマには、リストボックスのプラットフォームのインタフェースに関連する標 準的なプロパティがすべて集められています。必要があれば、横スクロールバーや縦 スクロールバーを使用するかどうかをこのテーマで指定することもできます。
■背景と境界線
このテーマには、行の背景色ならびに境界線スタイルに関するプロパティが再編成さ れています。
■背景色:リストボックスの背景色を設定します。このカラーは、ヘッダ(表示され る場合)を除いた全オブジェクトに使用されます。