2012-04-04 43 views
1

TMS的DBStringGrid組件具有自動調整行高的內置方法。我瞭解該方法工作所需的屬性設置,並在調用時運行良好。如何在任何時候顯示DBGrid時獲取方法?

我想我的網格的行自動調整任何時候網格顯示,我不知道在哪裏放置方法調用。我認爲組件的OnCustomCellDraw事件將是正確的選擇,但這隻會導致與無限循環相關的閃爍和內存使用(即使grid.doubleBuffering設置爲true時)。

你會在哪裏建議我將調用AutoSizeRows,如果我希望它隨時調用網格顯示?

更新:肯的答案是好的,但我也發現將調用放在DataSource的OnDataChange事件中,只要數據庫啓動到編輯模式,可能對我的目的有好處。

+0

,因爲此事件被解僱時的電池需要繪製在'OnCustomCellDraw'的閃爍現象引起的。所以這不是正確的地方。 – TLama 2012-04-04 23:35:06

+1

在包含表單的OnShow事件中可能是一個好地方。 – 2012-04-04 23:35:37

+0

@肯,它比評論更多的答案;-) – TLama 2012-04-04 23:36:15

回答

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,一如既往,另一個很好的答案...我很驚訝你可以提供所有這些有用的SO答案,並仍然找到工作的時間! – 2012-04-05 00:19:32

+0

:)謝謝。我想知道David Heffernan和RRUZ的情況,除了我不知道他們什麼時候工作,但是他們睡覺的時候。 (特別是大衛 - 他總是*這裏。) – 2012-04-05 02:46:37

+2

我很確定哪個@DavidHeffernan是機器人:) – RRUZ 2012-04-05 18:27:54

相關問題