1
A
回答
9
我想你实际上意味着
var
Timer1: TTimer;
然后,复位定时器,做
Timer1.Enabled := false;
Timer1.Enabled := true;
在我的 “RejbrandCommon.pas” 标准库,其实我已经定义
procedure RestartTimer(Timer: TTimer);
begin
Timer.Enabled := false;
Timer.Enabled := true;
end;
然后,每次我需要重新启动I计时器,我只是做
RestartTimer(Timer1);
当然,如果你想OnTimer
程序(例如, Timer1Timer
)重启前触发,你必须做
Timer1.OnTimer(Self);
Timer1.Enabled := false;
Timer1.Enabled := true;
或定义
procedure TriggerAndRestartTimer(Timer: TTimer);
begin
Timer.OnTimer(nil);
Timer.Enabled := false;
Timer.Enabled := true;
end;
(当然,最后一道工序,TriggerAndRestartTimer
,不是方法,因此没有Self
。然而,最有可能的Timer1Timer
过程不关心Sender
属性,所以你可以只发送任何东西,如nil
,而不是Self
)
1
有在设计时无法做到这一点。让处理程序禁用TTimer
然后重新启用它。
1
重置TTimer以重新触发其事件很简单。当您禁用并启用TTimer时,您的timertimeout事件将根据您设置的时间间隔重新触发。例如,
Timer1.interval:=1000; //milliseconds
Timer1.enabled:=false;
Timer1.enabled:=true;
下一次启用和禁用定时器时,Timer1事件将在一秒钟内启动。
相关问题
- 1. 德尔菲跳动
- 2. 布朗菲尔德vs格林菲尔德发展?
- 3. 德尔菲窗体恢复状态的位置和大小
- 4. 一些德尔菲错误
- 5. 德尔菲阵列的TEdit
- 6. 德尔菲Maxmind geoip查询
- 7. 德尔菲表加入
- 8. 德尔菲击中输入
- 9. JAXB马歇尔菲尔德与属性
- 10. 德尔菲棱镜的例子
- 11. 德尔菲通用约束问题
- 12. 火鸟v 2.5和德尔菲挂
- 13. 德尔菲+网络摄像头
- 14. 德尔菲指针,数组,手柄
- 15. 德尔菲帧销毁/隐藏
- 16. 德尔菲标签值排序
- 17. 比特菲尔德与3个国家...?
- 18. 简单的德尔菲TTimer程序
- 19. 德尔菲法签名转换成C#
- 20. 德尔菲弦/字符串数组
- 21. 德尔菲队列和同步参数
- 22. 在德尔福7
- 23. 德尔福7 __ArrayList
- 24. 德尔菲在释放物体时失去价值
- 25. 在64位服务器2008上的德尔福7,问题
- 26. 德尔福:简单的hh:mm:ss定时器
- 27. 德尔福7和事件
- 28. 德尔福7寡妇8.1
- 29. 德尔福7继承
- 30. 德尔福7和Windows Vista
试过这个,不行。 – none 2010-10-10 14:50:37
我知道它的工作原理。一直这样做。为什么它不起作用?是不是定时器重置,是不是正在触发的事件,不是代码编译,计算机是否爆炸? – 2010-10-10 17:08:15
@none:这绝对有效。 – gabr 2010-10-10 20:39:27