【问题标题】:Delphi DBGrid scrolling with mouseDelphi DBGrid 用鼠标滚动
【发布时间】:2010-11-10 02:14:14
【问题描述】:

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

谢谢

【问题讨论】:

  • 嗨,user262967。欢迎来到 StackOverflow。我们这里有很多了解 Delphi 和组件的人,但是很难理解您在寻找什么。您介意编辑您的问题,以便在某处有一个明确的 question 吗?谢谢。

标签: delphi


【解决方案1】:

如果我理解正确的话……

您需要做的是,与其在Datasource事件中执行“OnChange”代码,不如在该处启动一个定时器(参见TTimer),并在OnTimer事件中执行“OnChange”代码。

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

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

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

如果用户使用键盘的箭头滚动,这也将起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多