-1

私のアプリケーションでは、timer1 も timer5 も含め、いくつかのタイマーを取得しました。timer1 は timer2 をアクティブにし、前のタイマーを false に設定します。

「timer6」のように、これらに続く別のタイマーを作成したい

if timer1.enabled = true then 'then it should check if the timer2 now is enabled
if timer2.enabled = true then 'and so on to it reaches timer5..

私は停止点にいて、基本的にこの部分が機能する必要があるだけなので、これを達成するための例が必要です。

私の考えは、timer6でこれを行うことだけでした

if timer1.enabled = true then
  if timer2.enabled = true then
    if etc etc

    else 

      timer6.enabled = true
      timer6.enabled = false

    end if
  end if
end if

サブ終了

これを達成する方法はありますか?

だから..すべてのタイマーが1つの条件で有効になっていることを確認し、最後の条件を無効にする方法を探しています。

4

2 に答える 2

0

次のテストプロジェクトをご覧ください

フォームをクリックして最初のタイマーを開始し、ボタンをクリックしてアクティブなタイマーを確認します

'1 form with
'    1 timer : name=Timer1    Index=0
'    1 command button : name=Command1
Option Explicit

Private Sub Form_Load()
  Dim intIndex As Integer
  Timer1(0).Enabled = False
  Timer1(0).Interval = 1000
  For intIndex = 1 To 5
    Load Timer1(intIndex)
    Timer1(intIndex).Interval = intIndex * 1000
  Next intIndex
End Sub

Private Sub Form_Click()
  Timer1(0).Enabled = True
End Sub

Private Sub Timer1_Timer(Index As Integer)
  Print CStr(Now)
  Timer1(Index).Enabled = False
  If Index < Timer1.Count - 1 Then
    Timer1(Index + 1).Enabled = True
  Else
    Print "done"
  End If
End Sub

Private Sub Command1_Click()
  Dim intIndex As Integer
  For intIndex = 0 To Timer1.Count - 1
    If Timer1(intIndex).Enabled Then
      Caption = "active timer : " & CStr(intIndex)
      Exit For
    End If
  Next intIndex
End Sub
于 2012-12-19T11:29:49.877 に答える
0

一度にすべてのタイマーをチェックできるかどうかはわかりませんが、できることは、ブールフィールドに対応するすべてのタイマーの配列を保持することです。

 array = collection[timerState{timer1,true},timerState{timer2,false}] 

次に、各タイマーの有効化/無効化イベントで、この状態配列を更新し続けます。

最後に、すべてのタイマーの状態が必要な場所に表示されます。

于 2012-12-13T10:46:57.680 に答える