表示: Delphi C++
表示設定

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

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

ラジオコントロールを使った項目値の制限:インデックス への移動

カスタマイズされたグリッドは,列の外観や列データの表示方法を記述する持続的列オブジェクトが定義されたコントロールです。グリッドをカスタマイズすると,複数のグリッドを使って同一のデータセットの表示(列順序,項目選択,列の色やフォントなど)をさまざまに変更することができます。さらに,グリッドが使用する項目やデータセットの項目順を変えずに,ユーザーが実行時にグリッドの外観を変更できるようになります。

カスタマイズされたグリッドは,設計時に構造のわかっているデータセットと一緒に使用するのが最も望ましい方法です。カスタマイズされたグリッドは,設計時に設定した項目名がデータセット内にあることを前提としているので,実行時に選択された任意のテーブルの参照に使用するのはあまり適切ではありません。

持続的な列について

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

たとえば,列タイトルキャプションのデフォルトソースは,関連付けられている項目の DisplayLabel プロパティです。DisplayLabel プロパティを変更すると,すぐにその変更が列タイトルに反映されます。列タイトルのキャプションに文字列を割り当てると,そのタイトルキャプションは関連付けられている項目の DisplayLabel プロパティから独立します。それ以降はその項目の DisplayLabel プロパティを変更しても列タイトルは変わりません。

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

複数の持続的な列をデータセットの同一項目に関連付けることができます。たとえば,横に広いグリッドの左右の端に部品番号の項目を表示すれば,グリッドをスクロールしなくても部品番号を簡単に見つけられるようになります。

メモ:  持続的な列は,データセットの項目と関連付ける必要がないため,また複数の列で同一の項目を参照できるため,カスタマイズされたグリッドの FieldCount プロパティはグリッドの列数と等しいかそれ以下になります。また,カスタマイズされたグリッド内で現在選択されている列が項目と関連付けられていない場合,グリッドの SelectedField プロパティは NULL になり,SelectedIndex プロパティは -1 になります。

持続的な列は,グリッドのセルを別のデータセットや持続的選択リストからの参照値のコンボボックスドロップダウンリストとして表示したり,現在のセルと関連した特殊なデータビューアやダイアログボックスをクリックで起動する省略記号のボタン([...])として表示するように,構成することができます。

以下のトピックでは,持続的列についてさらに説明しています。

関連項目

他言語版