我正在尝试每x秒执行一次函数(或过程)。
我一直在寻找各处,但似乎从来没有找到适合我需要的东西。
我的应用程序基本上从网上获取数据,我想制作一个自动刷新复选框。 所以假设用户选中了该框,我希望应用程序每隔5秒调用一次该函数。
谢谢!
答案 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,我认为我是对的。