1

TMSのDBStringGridコンポーネントには、行の高さを自動サイズ設定する組み込みのメソッドがあります。メソッドが機能するために必要なプロパティ設定を理解しており、呼び出されたときにうまく機能します。

グリッドが表示されるたびにグリッドの行のサイズを自動化したいのですが、メソッド呼び出しをどこに配置すればよいかわかりません。コンポーネントのOnCustomCellDrawイベントが適切な選択だと思いましたが、それは無限ループに関連するちらつきとメモリ使用量を引き起こします(grid.doubleBufferingがtrueに設定されている場合でも)。

グリッドが表示されているときにAutoSizeRowsを呼び出したい場合は、どこでAutoSizeRowsを呼び出すことをお勧めしますか?

更新:ケンの答えは良いですが、DBが編集モードに入るときはいつでも、データソースのOnDataChangeイベントに呼び出しを配置することも私の目的に適している可能性があります。

4

1 に答える 1

2

親(含む)フォームのOnShowイベントを使用できます。

procedure TForm1.FormShow(Sender: TObject);
begin
  // Make sure grid's data is available by opening the
  // dataset first, and then call your AUtoSizeRows here.
end;
于 2012-04-04T23:38:21.367 に答える