TStringGridやTDBGridではOptionsプロパティを設定することで、
例えば
・グリッド内の値の編集を許可する/しない
・列の分割線を表示する/しない
といったグリッドの実行時の動作や外観の制御を行うことが可能です。
今回はこうした設定をコーディング上で制御するテクニックをご紹介します。
オブジェクトインスペクタではOptionsプロパティ下にある
各要素のプロパティをTrueまたはFalseに設定すればいいのですが、
コードで設定する場合、単純にTrueまたはFalseでは設定できません。
これはOptionsプロパティが集合型のためです。
そのため、コーディング上では以下のように足し引きで記述します。
// TDBGridでdgEditingをTrueにする(編集可能にする)
DBGrid1.Options := DBGrid1.Options + [dgEditing];
// TDBGridでdgEditingをFalseにする(編集不可にする)
DBGrid1.Options := DBGrid1.Options - [dgEditing];
// TStringGridでgoEditingをTrueにする(編集可能にする)
StringGrid1.Options := StringGrid1.Options + [goEditing];
// TStringGridでgoEditingをFalseにする(編集不可にする)
StringGrid1.Options := StringGrid1.Options - [goEditing];
また各プロパティ値がTrueであるかの判断は、
in 演算子を使用して指定された要素が存在するかをチェックして行うことができます。
例えばgoEditingがTrueに設定されている場合Optionsに存在しますので、
DBGridで判断を行うには次のようになります。
if dgEditing in DBGrid1.Options then
Label1.Caption := '変更可'
else
Label1.Caption := '変更不可';
Optionsについてはそれぞれの要素でデフォルト設定が
TrueになっているものとFalseになっているものがあり、
またTStringGridとTDBGridでは各要素名が異なりますので、ご注意下さい。
<関連リンク>
- Vcl.DBGrids.TDBGridOption – RAD Studio API Documentation
- TDBGridのOptions項目説明
- TDBGridのOptions項目説明
- Vcl.Grids.TGridOptions – RAD Studio API Documentation
- TStringGridのOptions項目説明
- TStringGridのOptions項目説明
(ミガロ.情報マガジン「MIGARO News!!」Vol.100 2009年3月号より)
(ミガロ.情報マガジン「MIGARO News!!」Vol.214 2018年9月号より)