リスト上でフィールドがどのように表示されるかを以下に示します。
PRIM_GRID (Grid Control), PRIM_LTVW (ListView Control) and PRIM_TRVW (Tree Control) all support Field Visualization.違いはわずかで、機能的に問題なければ、どれもほとんど同じように使えます。フィールド・ビジュアライゼーション機能の違いを表に示します。
グリッド制御 | リスト・コンポーネント内にフィールド・ビジュアライゼーションに必要な機能が、最も豊富に組み込まれています。グリッドで区切られた各セルの境界が、列の区切りを表します。フィールド・ビジュアライゼーションに必要な機能が揃っているので、以下に示す例でもほとんどこれを使っています。 |
|---|---|
リスト・ビュー制御 | これもフィールド・ビジュアライゼーションの表示に必要な機能の多くを備えていますが、次のような制約があります。
|
ツリー制御 | フィールド・ビジュアライゼーションに関してはEditAppearanceの機能しか使えません。これは、ツリー構造の特性による制約です。 |
次に、リスト・コンポーネント内に埋め込まれたフィールド・ビジュアライゼーションについて説明しましょう。
リスト・コンポーネント PRIM_GDCL(グリッド)、PRIM_LVCL(リスト・ビュー)、PRIM_TVCL(ツリー・ビュー) の列はすべて、フィールド・ビジュアライゼーションをサポートし、次のようなプロパティを備えています。
DisplayAppearance | 描画方法を定義します。次の選択肢があります。
|
|---|---|
EditAppearance | 値の編集方法を定義します。DisplayAppearanceとは独立に定義できるので、組み合わせにより多様な使い方ができます。次のようなものがあります。
|
EditorPart | EditAppearanceが再利用可能パーツである場合に、編集に使うコンポーネント名を表します。ただし、次の条件を満たす必要があります。
|
UsePicklist | このプロパティはPRIM_EVEF、PRIM_EVSE、PRIM_GDCL、PRIM_LVCL、PRIM_TVCLに追加されたものです。設計時にのみ必要となります。対応するコンポーネントの表示形式を決める際、ピックリストを参照するかどうかを表します。 |
Editor | 列が使う実際のエディターを表します。 |
例:数値フィールドの表示方法として「PRIM_EVSE(SpinEdit)」が定義され、さらにピックリストも指定されているとしましょう。UsePicklistプロパティがFALSEであれば、スピン編集ボックスの形で表示したとき、所定の数値範囲にわたって値を調整するという、普通の使い方ができるようになります。一方、TRUEであれば、ピックリストに列挙されている値を順に切り替える、という使い方になります。
リスト上のフィールド・ビジュアライゼーションを決める処理は、フォーム上の場合よりもやや技巧的です。フォームの場合、単純にフィールド・ソースに表示クラスを追加し、それを使うだけです。自分で追加した機能しか使えないので、問題が生じることはほとんどありません。一方、リストの場合、初めての開発者には少々面倒に見えるかも知れません。というのも、リスト・コンポーネントの場合、列に対する設定との組み合わせが必要になるからです。列に対応する各フィールドの内容に適しているかどうかとは無関係に、どの表示方法でも選択できるようになっています。リスト・コンポーネント上のフィールド・ビジュアライゼーションの使用に、特に注意が必要なのはこのためです。実際に試してみる前に、サンプルをすべて読み、全体像を把握しておいてください。疑問が生じた場合もサンプルが手助けになるはずです。