毎分ゼロ秒に動作するタイマー
|
48 |
TimerRunZeroSecond |
動作確認 |
Delphi2007 |
更新日 |
2008/01/29(火) |
Timerを毎分ごとに動作したい場合
IntervalTime:=60000;
と設定するといいのですが
これだと、数秒ずつずれていってしまう場合があります。
そこで、次のようにします。
────────────────────
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
//タイマーでの処理
Timer1.Interval := (60 - SecondOf(Now)) * 1000;
Timer1.Enabled := True;
end;
────────────────────
これで、○○分20秒に起動したTimerは
40秒のインターバルタイムで次のイベントが呼ばれ
タイマー動作処理後に
05秒にEnabled:=Trueになった場合は55秒後に次のイベントが呼ばれるので
次回のイベントが
ほとんど○○分0秒に開始されることになります。
参考────────────────────
[Delphi-ML:85990] Re: タスクマネージャのようなコンポーネントはないでしょうか?
http://www2.big.or.jp/~osamu/Delphi/browse.cgi?index=85990
|