2012-04-04 5 views
1

TMSのDBStringGridコンポーネントには、行の高さを自動的に調整する組み込みのメソッドがあります。私はメソッドが動作するために必要なプロパティ設定を理解しており、呼び出されるとうまく動作します。DBGridが表示されるたびにメソッドを呼び出す方法を取得しますか?

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

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

UPDATE:ケンの答えはいいですが、DBが編集モードに入ると、DataSourceのOnDataChangeイベントにコールを置くこともわかります。

+0

をセルを描画する必要があるたびに、このイベントが発生しているので、OnCustomCellDraw' 'でちらつきが発生します。それは正しい場所ではありません。 – TLama

+1

含まれているフォームのOnShowイベントでは良い場所になるかもしれません。 –

+0

@Ken、それはコメントよりも答えです;-) – TLama

答えて

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; 
+0

いつものように@Kenに感謝しています。私はこれらの役立つ答えをすべて提供することができ、まだ時間を見つけることができて驚いています! –

+0

:)ありがとう。 David HeffernanとRRUZについても同じことがあります。私は彼らが働く時だけでなく、彼らが眠っている時も不思議です。 (特にデイヴィッド - 彼は*常に*ここにいる) –

+2

私はかなり@DavidHeffernanがロボットであることを確信しています:) – RRUZ

関連する問題