カスタマイズされたグリッドの作成

提供: RAD Studio
移動先: 案内検索

TDBGrid を使ったデータの表示と編集 への移動


カスタマイズされたグリッドとは、列の外観や列データの表示方法を記述した永続列オブジェクトが定義されたグリッドです。カスタマイズされたグリッドを使用すると、同じデータセットを異なる方法で表示するよう(列の順序、選択したフィールド、列の色やフォントなど)、複数のグリッドを構成できます。また、グリッドが使用するフィールドや、データセットのフィールドの順序を変えることなく、ユーザーが実行時にグリッドの外観を変更できるようになります。

カスタマイズされたグリッドは、設計時に構造がわかっているデータセットと組み合わせて使用するのが適しています。設計時に指定したフィールド名がデータセット内に存在することを前提としているため、カスタマイズされたグリッドは、実行時に任意のテーブルを選択して参照するのには向きません。

永続列について

グリッドに作成された永続列オブジェクトは、背後にあるグリッドのデータセットのフィールドとは、緩やかに関連付けられているだけです。永続列のプロパティのデフォルト値は、列プロパティに値が割り当てられるまでは、デフォルト ソース(関連付けられたフィールドまたはグリッド自体)から動的に取得されます。列プロパティに値を割り当てるまでは、プロパティの値はデフォルト ソースに合わせて変化します。列プロパティに値を割り当てた後は、デフォルト ソースが変化してもその値は変化しなくなります。

たとえば、列タイトル キャプションのデフォルト ソースは、関連付けられたフィールドの DisplayLabel プロパティです。DisplayLabel プロパティを変更すると、列タイトルにはその変更がすぐに反映されます。列タイトルのキャプションに文字列を割り当てると、タイトル キャプションは関連付けられたフィールドの DisplayLabel プロパティに依存しなくなります。それ以降、フィールドの DisplayLabel プロパティを変更しても、列タイトルには影響しません。

永続列は、関連付けられているフィールド コンポーネントとは独立して存在しています。実際に、永続列はフィールド オブジェクトと関連付けられている必要すらありません。永続列の FieldName プロパティが空の場合や、フィールド名がグリッドの現在のデータセットのどのフィールド名とも一致しない場合は、列の Field プロパティは NULL になり、列には空白のセルが描画されます。セルのデフォルトの描画メソッドをオーバーライドすると、空のセルに独自のカスタム情報を表示することができます。たとえば、空の列を使用して、集計対象のレコード グループの最後のレコードに集計値を表示することができます。また、レコード データのある側面を図示するビットマップや棒グラフなどを表示することもできます。

複数の永続列をデータセット内の同じフィールドに関連付けることができます。たとえば、横に広いグリッドの左右の端に部品番号のフィールドを表示すれば、グリッドをスクロールしなくても部品番号を探しやすくなります。

メモ: 永続列をデータセット内のフィールドに関連付ける必要がなく、また複数の列が同じフィールドを参照するようにできるため、カスタマイズされたグリッドの FieldCount プロパティは、グリッドの列数以下になることがあります。また、カスタマイズされたグリッドで現在選択されている列がフィールドと関連付けられていない場合には、グリッドの SelectedField プロパティは NULL になり、SelectedIndex プロパティは -1 になります。

グリッドのセルに別のデータセットからルックアップした値や静的な選択リストの値を含むコンボ ボックス ドロップダウン リストを表示したり、セルに参照([...])ボタンを表示してそれをクリックすると特別なデータ ビューアや現在のセルに関連するダイアログを開くように、永続列を構成することができます。

以下のトピックでは、永続列についてさらに詳しく説明しています。

関連項目