掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
timer イベントに関する質問 (ID:139719)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
補足) 上の方法でもほんの少しずつですが、ずれが出てきます。(ずれが蓄積していく)。 Timer関数(1秒単位)ではなく API の GetTickCount(1m秒単位) を使えばずれは少なくなります。 時報のように正確に(ずれが蓄積しないように)一分おきに発生させたいときは、経過時間ではなく時刻を取得してInterval プロパティーを調節してやる必要があります。 また、場合によっては、 Timer1_Timerイベントに60秒以上かかってしまったときの対策も必要となります。 下の例は、Timer1_Timerイベントに60秒以上かかった場合の対策をしていない場合のものです。 Dim mTime As Date 'Timerイベントの実行予定時刻が入るモジュール変数。 Private Sub Command1_Click() 'スタート Timer1.Enabled = False mTime = DateAdd("n", 1, Now) '予定時刻をセット。 Timer1.Interval = 60000 Timer1.Enabled = True End Sub Private Sub timer1_Timer() 処理1 labe1.Caption = Now() 処理2 mTime = DateAdd("n", 1, mTime) '一分後に予定。 Timer1.Interval = DateDiff("s", Now, mTime) * 1000 '予定とのずれを調節する。 End Sub
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.