Delphi DBGrid用鼠标滚动

时间:2010-11-09 17:41:26

标签: delphi

我有一个dbgrid,并且在其数据源onchange事件上有一些代码可以完成一些工作,需要2-3秒。当我在dbgrid上滚动鼠标时,数据源上的代码适用于我已滚动的所有行,但我希望它能用于最后一行,我该怎么办呢。有一个afterscroll事件用于查询,但它也做同样的

感谢

1 个答案:

答案 0 :(得分:1)

如果我理解正确......

您需要做的是,不应在Datasource事件中执行“OnChange”代码,而应在那里启动计时器(请参阅TTimer),并在OnTimer事件中执行“OnChange”代码。

在OnChange中,您应该只启动/重置计时器。

这样,如果用户滚动许多记录,如果用户在任何记录上保持闲置时间过长,它将只执行你的OnChange,很可能只在他滚动到的最后一条记录上停留一次。

计时器应该多长时间取决于您自己的特定需求。

如果用户使用键盘的箭头滚动,那也会有效。