每隔x秒delphi执行一次动作

时间:2011-03-23 01:39:08

标签: delphi timer

我正在尝试每x秒执行一次函数(或过程)。

我一直在寻找各处,但似乎从来没有找到适合我需要的东西。

我的应用程序基本上从网上获取数据,我想制作一个自动刷新复选框。 所以假设用户选中了该框,我希望应用程序每隔5秒调用一次该函数。

谢谢!

3 个答案:

答案 0 :(得分:8)

使用TTimer(来自组件面板中的System标签)。将间隔设置为秒数* 1000(从毫秒转换为秒),并为OnTimer事件编写处理程序。

答案 1 :(得分:8)

最简单的方法是使用TTimer组件,这是Delphi标准VCL的一部分。在表单上放置一个,确保Enabled设置为True,将Interval设置为5000(该值以毫秒为单位),并分配其OnTimer事件,您将放置需要每5秒运行一次的代码。

有时最好先禁用定时器,然后在代码中将其Enabled属性设置为true,以便在应用程序中的其他所有内容都正确设置后,计​​时器开始启动。

定时器可能无法以精确的5秒间隔触发,因为定时器消息在Windows中具有低优先级,如果CPU正在执行大量其他工作,则可能无法接收定时器消息。由于您的间隔时间相对较长,您可以将计时器设置为每秒触发一次(间隔:= 1000)或甚至每秒几次,并在每次触发时检查当前时间。如果当前时间比上次更新时间晚5秒或更长时间,则执行更新。 (使用DateUtils单元中的SecondsBetween函数进行确定)。

答案 2 :(得分:1)

我目前没有Delphi,但我很确定控制面板中有一个TTimer组件,根据this,我认为我是对的。