我有一个dbgrid,并且在其数据源onchange事件上有一些代码可以完成一些工作,需要2-3秒。当我在dbgrid上滚动鼠标时,数据源上的代码适用于我已滚动的所有行,但我希望它能用于最后一行,我该怎么办呢。有一个afterscroll事件用于查询,但它也做同样的
感谢
答案 0 :(得分:1)
如果我理解正确......
您需要做的是,不应在Datasource事件中执行“OnChange”代码,而应在那里启动计时器(请参阅TTimer),并在OnTimer事件中执行“OnChange”代码。
在OnChange中,您应该只启动/重置计时器。
这样,如果用户滚动许多记录,如果用户在任何记录上保持闲置时间过长,它将只执行你的OnChange,很可能只在他滚动到的最后一条记录上停留一次。
计时器应该多长时间取决于您自己的特定需求。
如果用户使用键盘的箭头滚动,那也会有效。