如何在显示DBGrid时调用方法?

时间:2012-04-04 23:29:49

标签: delphi autosize dbgrid

TMS的DBStringGrid组件有一个内置方法,可自动调整行高。我理解该方法工作所需的属性设置,并且在调用它时效果很好。

我想在网格显示的任何时候自动化我的网格行,我无法弄清楚方法调用的位置。我认为组件的OnCustomCellDraw事件是正确的选择,但这只会导致与无限循环相关的闪烁和内存使用(即使grid.doubleBuffering设置为true)。

如果我希望在显示网格的任何时候调用它,你会建议我将调用置于AutoSizeRows吗?

更新:Ken的答案很好,但我也发现将调用放在DataSource的OnDataChange事件中,每当数据库启动进入编辑模式时,这可能对我的目的一样好。

1 个答案:

答案 0 :(得分: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;