Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


【Delphi】グリッドのOptionsプロパティの設定

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では各要素名が異なりますので、ご注意下さい。

 

<関連リンク>

 

(ミガロ.情報マガジン「MIGARO News!!」Vol.100 2009年3月号より)
(ミガロ.情報マガジン「MIGARO News!!」Vol.214 2018年9月号より)