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