タイマーコントロールの使い方について
旧来のBASICにも時間を計測したりインターバルをとるのに、on timeのようなコマンドがありましたが、Visual
Basicではタイマーコントロールでこれらの実装が簡単になりました。
1 タイマーの仕様
タイマー(Timer)を使うと、Intervalプロパティに設定した時間(ミリ秒)が経過するたびに、タイマーイベントが発生します(Timerプロシージャが呼び出される)。タイマーイベントを禁止するにはEnabledプロパティをFalseにします。
主に設定するプロパティは以下の2つだけです。
Enabled |
True タイマーイベントを発生 False 禁止 |
Interval |
タイマーイベントの発生間隔をミリ秒で設定。設定値は1〜65535(約65秒)。
0を設定すると、タイマーイベントは発生しない。 |
インターバルで呼び出して実行させたい内容を、Timerプロシージャに記述します。
Private Sub Timer1_Timer()
...ここに実行したいコードを書く....
End Sub
2 簡単なプログラム
すごくシンプルながら、実はかなり使えるプログラムを1個作ってみましょう。
ある時刻(「戻り時刻」)を決め、そこから1分経過すると、システム時間を戻り時刻に戻すプログラムです。すなわち、システム時間を止めたままにするプログラムです。用途はいろいろありますので、まあ、各自工夫してみて下さい。
TEXT1は現在時刻の表示用です。
TEXT2に戻したい日付、TEXT3に戻したい時刻を設定します。
[SET]ボタンを押すと10秒経過するたびに、システムの現在時刻をTEXT3に設定した時刻に戻します
(図1)
コードはたったのこれだけです。
Timer1はIntervalを5000に設定しており(5秒毎にインターバルイベントが発生)ます。
Form_Loadプロシージャで使用している変数f、およびCommand1_Clickプロシージャの変数settimeはPublic変数です。
fは時刻を戻す動作のフラグとして使用しており、f=1になると、動作ONとします。
[SET]ボタンを押すと、fが1にセットされ、1分毎にシステムの現在時刻をText3に設定した時刻(変数settimeに代入されている)に戻す動作になります。
Begin VB.Timer Timer1
Interval = 5000
Left = 120
Top = 840
End
Public f As Integer, tcount As Integer, settime As String
Private Sub Form_Load()
f = 0
End Sub
Private Sub Command1_Click()
settime = Text3.Text
Date$ = Text2.Text
f = 1
End Sub
Private Sub Timer1_Timer()
Text1.Text = Time
If f = 1 Then tcount = tcount + 1
If tcount >= 11 Then
tcount = 0
Time = settime
End If
End Sub
|
これで、システム時間を進ませないようにすることができます。
|
|