Timer の Interval の限界について

解決


  2005-10-03 11:18:02  No: 125931

お世話になります。VB6で開発しています。Timerの Interval 値に、6000(つまり1分)を設定したらうまくいくのに、1分6秒以上を設定するとプロパティエラーになります。これを解決する方法はあるのでしょうか?やりたいことは、Intervalで設定した値秒後に、他のプロセスを起動したいということなのですが。


030  2005-10-03 11:45:29  No: 125932

例えばIntervalを1000に設定しておいて2分後に起動なら
120回目のTimerイベントで処理すればいいことですね。


  2005-10-03 20:03:59  No: 125933

そうですね。私もそれは考えましたが、「〜分後に」というのが可変のため、Interval値にその値をそのまま設定すればいいかなーと思っていたのですが、やはり無理ということでしょうか?


特攻隊長まるるう  2005-10-03 20:21:21  No: 125934

以下ヘルプより抜粋。
>Interval プロパティ
>設定値
>設定値のデータ型は、長整数型 (Long) です。
>最長の設定である 65,535 ミリ秒は 1 分間よりも少し長い時間間隔になります。
Long の範囲を超える値は設定できません。


葉月α  2005-10-03 20:22:11  No: 125935

確かヘルプにタイマーコントロールのインターバル最大値は
65535ミリ秒(1分ちょい)が最大との表記があった気がしますが
確認してください

↓調べる方法
画面に配置したタイマーコントロールクリックしてF1キーを押す
プロパティをクリックしIntervalを調べる


葉月α  2005-10-03 20:22:37  No: 125936

かぶった・・・(^^;


ガッ  2005-10-03 21:15:22  No: 125937

> やはり無理ということでしょうか?
だからできるって…


  2005-10-04 12:12:42  No: 125938

そうですか。ありがとうございます。プログラムを修正します。葉月αさん、調べる方法も教えていただいてありがとうございます。勉強になりました。


コボル  2005-10-04 17:56:05  No: 125939

'これで出来る。と良いのですが。
'Timer1.Interval値は1000
'タイマーイベントの回数は変数を使ってもいいと思います。
'下の例では約二分後にMsgBoxが表示されます。

Option Explicit

Private lngTimerCount       As Long
Private lngIntervalCount    As Long

Private Sub Command1_Click()

    lngIntervalCount = 120                  'タイマーイベントの回数を設定。例:120秒
    Timer1.Interval = 1000                  'Interval値を設定
    Timer1.Enabled = True
    
End Sub

Private Sub Timer1_Timer()

    If lngTimerCount >= lngIntervalCount Then
       Timer1.Enabled = False               'タイマーの停止
       lngTimerCount = 0                    'タイマーイベントの回数を初期化
       MsgBox "他のプロセスを起動"
    Else
       lngTimerCount = lngTimerCount + 1
       Exit Sub
    End If
    
End Sub


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加