Timer計時器

研究問題:

  1. Timer循環體中怎樣避免反覆調用的死循環?

要點:

  • 定義其他部件,通過控制其他部件的變化間接的控制所要控制的部件
    如:在Form1裏面加個Text1控件,Visble設爲False不可見。把Text1當成全局變量使用,其他窗口(比如Form2裏面的Label1)要調用的時候,在Form2裏面輸入代碼Label2.Caption = Form1.Text1.text就可以調用。
  • 使用中間變量,在其他部件模塊中添加並讓計時器Enable=true工作,而在timer中讓計時器不工作,即計時器避免了timer中的死循環,僅僅調用了其他部件的控件。
  • 不要在Form_Load事件中定義整型變量h,因爲這是局部變量,僅在Load事件中有效,你可以在在代碼區域的最頂端定義變量h,它屬於全局變量,在整個窗體運行中有效,也可以在Timer控件的Timer事件中定義靜態變量h,格式:static h as integer,具體代碼如下:
    Private Sub Timer1_Timer()
    Static h As Integer
    h = h + 1
    Text1.Text = h
    End Sub

截圖展示區:

    1.
Private Sub Form_Load()
Timer1.Interval = 1000
Label2.Caption = 1
End Sub
Private Sub Label1_Change()
Label2.Caption = Label2.Caption + 1
End Sub
Private Sub Timer1_Timer()
If Label1.Caption <> Str(Timer) Then
Label1.Caption = Time
End If
End Sub

%(註釋:當label1.caption發生變化時,label2.caption+1)

引用塊內容

    2.
Private Sub Command1_Click()
Num = Val(Text1.Text * 60)
Text1.Text = Num
Timer1.Enabled = True(此時計時器就開始計時,此時避免了循環,因爲Timer計時器循環的僅僅是Timer1_Timer()中的結構)
End Sub

Private Sub Form_Load()
Timer1.Enabled = False
Text1.Text = "2"

End Sub

Private Sub Timer1_Timer()
Text1.Text = Text1.Text - 1(設置Enable=false,若設置爲true則Text1.Text顯示爲21,0,時間到,-1,-2….即馬上從Command1_Click()中的Text1.Text = "2"傳入值就開始循環)
If Text1.Text = 0 Then
A = MsgBox("時間到", 0, "工程1")
End If
End Sub

引用塊內容
這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章