DBGridで列移動不可で列幅変更ができるようにする
標準のDBGridは、列幅変更ができるようにすると列移動もできるようになってしまうオプションしかない。
列移動はできないが、列幅変更だけしたいときの方法。
オリジナルのソースを弄ります。
1)
Vcl.DBGrids.pas(またはDBGrids.pas)を別のフォルダにコピー。
2)
TCustomDBGrid.SetOptions メソッドの以下の行を変更
dgColumnResize がTrueの時の設定処理
NewGridOptions := NewGridOptions + [goColSizing, goColMoving];
から、goColMovingをコメントアウト
NewGridOptions := NewGridOptions + [goColSizing{, goColMoving}];
(XE4だと、3965行)
3)
上記ファイルを、オリジナルより先に読むように、path等を設定、または、プロジェクトに追加。
(注意)
元ソースを変えるので、プロジェクト全体が変わることになる。
同一プロジェクトで画面によっては、列移動も可能にしたいという要望があるときはこの方法はNG。
--
別のブログ(今はない)に書かれていたものをQiitaに再投稿したものです。