2011-03-23 269 views
2

我試圖每x秒執行一次函數(或過程)。每x秒執行一次動作delphi

我一直在到處找,但似乎從來沒有找到適合我的需要。

我的應用程序基本上是從網絡獲取數據,我想打一個自動刷新複選框。 因此,假設用戶選中該框,我希望應用程序每5秒調用一次該功能。

謝謝!

回答

7

使用一個TTimer(從在組件調色板System標籤)。將間隔設置爲秒數* 1000(從毫秒轉換爲秒),併爲OnTimer事件編寫處理程序。

+0

謝謝!很容易! – Gab 2011-03-23 01:57:07

1

我目前沒有Delphi,但我很確定在控制面板中有一個TTimer組件,根據this,我認爲我是對的。

7

它使用TTimer組件,德爾福的標準VCL的一部分,最簡單的方法。將一個放在窗體上,確保Enabled設置爲True,將Interval設置爲5000(該值以毫秒爲單位),然後分配其OnTimer事件,您將在其中放置需要每5秒運行一次的代碼。

有時是開始禁用計時器是個好主意,那麼它的Enabled屬性設置爲true的代碼,使計時器開始起火後一切都在你的其他應用程序已正確設置。

計時器可能無法在精確的5秒的時間間隔進行發射,因爲定時器消息在Windows中具有低優先級,如果CPU是做了很多其他工作可能無法接收。由於您的間隔時間較長,因此您可以將計時器設置爲每秒觸發一次(間隔:= 1000),甚至每秒觸發幾次,並在每次觸發時檢查當前時間。如果當前時間晚於上次更新時間5秒或更長時間,請執行更新。 (使用DateUtils單元中的SecondsBetween函數進行確定)。