リストの例

リスト上でフィールドがどのように表示されるかを以下に示します。

編集ボックス

プロンプタつき編集ボックス

スピン編集ボックス

コンボ・ボックス

チェック・ボックス

イメージ

画像およびテキスト

再利用可能パーツ

 

PRIM_GRID (Grid Control), PRIM_LTVW (ListView Control) and PRIM_TRVW (Tree Control) all support Field Visualization.違いはわずかで、機能的に問題なければ、どれもほとんど同じように使えます。フィールド・ビジュアライゼーション機能の違いを表に示します。

グリッド制御

リスト・コンポーネント内にフィールド・ビジュアライゼーションに必要な機能が、最も豊富に組み込まれています。グリッドで区切られた各セルの境界が、列の区切りを表します。フィールド・ビジュアライゼーションに必要な機能が揃っているので、以下に示す例でもほとんどこれを使っています。

リスト・ビュー制御

これもフィールド・ビジュアライゼーションの表示に必要な機能の多くを備えていますが、次のような制約があります。

  • ViewStyle(Report)プロパティが必要
  • 編集可能なのは DisplayPosition(1) が指定された列のみ

 

ツリー制御

フィールド・ビジュアライゼーションに関してはEditAppearanceの機能しか使えません。これは、ツリー構造の特性による制約です。

 

次に、リスト・コンポーネント内に埋め込まれたフィールド・ビジュアライゼーションについて説明しましょう。

リスト・コンポーネント PRIM_GDCL(グリッド)、PRIM_LVCL(リスト・ビュー)、PRIM_TVCL(ツリー・ビュー) の列はすべて、フィールド・ビジュアライゼーションをサポートし、次のようなプロパティを備えています。

DisplayAppearance

描画方法を定義します。次の選択肢があります。

  • チェック・ボックス
  • 編集
  • 画像
  • 画像およびテキスト
  • 複数行にわたる編集が可能な編集ボックス

EditAppearance

値の編集方法を定義します。DisplayAppearanceとは独立に定義できるので、組み合わせにより多様な使い方ができます。次のようなものがあります。

  • チェック・ボックス
  • 編集
  • 画像
  • 画像およびテキスト
  • 複数行にわたる編集が可能な編集ボックス
  • 再利用可能パーツ
  • スピン編集ボックス

EditorPart

EditAppearanceが再利用可能パーツである場合に、編集に使うコンポーネント名を表します。ただし、次の条件を満たす必要があります。

  • デフォルトのプロパティが設定されていること
    値の設定や取得は、このプロパティを介して行うことになります。

UsePicklist

このプロパティはPRIM_EVEF、PRIM_EVSE、PRIM_GDCL、PRIM_LVCL、PRIM_TVCLに追加されたものです。設計時にのみ必要となります。対応するコンポーネントの表示形式を決める際、ピックリストを参照するかどうかを表します。

このプロパティの目的は、旧版との互換性を維持しながら新しい機能も使えるようにすることです。旧コンポーネントもUsePicklist = FALSEであれば従来通りの動作をする一方、新しいコンポーネントをUsePicklist = TRUEとすれば、新たな機能が使えるようになるのです。

Editor

列が使う実際のエディターを表します。

 

 

例:数値フィールドの表示方法として「PRIM_EVSE(SpinEdit)」が定義され、さらにピックリストも指定されているとしましょう。UsePicklistプロパティがFALSEであれば、スピン編集ボックスの形で表示したとき、所定の数値範囲にわたって値を調整するという、普通の使い方ができるようになります。一方、TRUEであれば、ピックリストに列挙されている値を順に切り替える、という使い方になります。

リスト上のフィールド・ビジュアライゼーションを決める処理は、フォーム上の場合よりもやや技巧的です。フォームの場合、単純にフィールド・ソースに表示クラスを追加し、それを使うだけです。自分で追加した機能しか使えないので、問題が生じることはほとんどありません。一方、リストの場合、初めての開発者には少々面倒に見えるかも知れません。というのも、リスト・コンポーネントの場合、列に対する設定との組み合わせが必要になるからです。列に対応する各フィールドの内容に適しているかどうかとは無関係に、どの表示方法でも選択できるようになっています。リスト・コンポーネント上のフィールド・ビジュアライゼーションの使用に、特に注意が必要なのはこのためです。実際に試してみる前に、サンプルをすべて読み、全体像を把握しておいてください。疑問が生じた場合もサンプルが手助けになるはずです。