使用 Timer 控件
Timer 控件響應時間的流逝。它們獨立於用戶,編程後可用來在壹定的時間間隔執行操作。此控件的壹個壹般用處是檢查系統時鐘,判斷是否該執行某項任務。對於其它後臺處理, Timer 控件也非常有用。
圖 7.46 Timer 控件
每個 Timer 控件都有 Interval 屬性,指定定時器事件之間的毫秒數。除非禁止此屬性,否則定時器在大致相等的時間間隔不斷接受事件(稱作定時器事件會更貼切)。
在為 Timer 控件編程時應考慮對 Interval 屬性的幾條限制:
如果應用程序或其它應用程序正在進行對系統要求很高的操作─ 例如長循環、高強度的計算或者正在訪問驅動器、網絡或端口─ 則應用程序定時器事件的間隔可能比 Interval 屬性指定的間隔長。
間隔的取值可在 0 到 64,767 之間(包括這兩個數值),這意味著即使是最長的間隔也不比壹分鐘長多少(大約 64.8 秒)。
間隔並不壹定十分準確。要保證間隔準確,應在需要時才讓定時器檢查系統時鐘,而不在內部追蹤積聚的時間。
系統每秒生成 18 個時鐘信號─ 所以即使用毫秒衡量 Interval 屬性,間隔實際的精確度不會超過 18 分之壹秒。
每個 Timer 控件必須要與窗體關聯。因此要創建定時器應用程序就必須至少創建壹個窗體(如果不需要窗體完成其它操作就不必使窗體可見)。
註意 在 Visual Basic 中,單詞 "timer" 有好幾種用法,每種都與 Timer 控件的工作有關。除了控件名和控件類型以外,"timer" 還用在定時器事件和定時器函數中。
在窗體上放置 Timer 控件
在窗體上放置 Timer 控件的方法與繪制其它控件的方法相同:單擊工具箱中的定時器按鈕並將它拖動到窗體上。
Timer 控件只在設計時出現在窗體上,所以可以選定這個控件,查看屬性,編寫事件過程。運行時,定時器不可見,所以其位置和大小無關緊要。
初始化 Timer 控件
Timer 控件有兩個關鍵屬性。
屬性 設置值
Enabled 若希望窗體壹加載定時器就開始工作,應將此屬性設置為 True。否則,保持此屬性為 False。有時可能選擇由外部事件(例如單擊命令按鈕)啟動定時器操作。
Interval 定時器事件之間的毫秒數。
註意,定時器的 Enabled 屬性不同於其它對象的 Enabled 屬性。對於大多數對象,Enabled 屬性決定對象是否響應用戶觸發的事件。對於 Timer 控件,將 Enabled 設置為 False 時就會暫停定時器操作。
記住,Timer 事件是周期性的。Interval 屬性主要是決定“多少次”而不是“多久”。間隔的長度取決於所需精確度。因為存在某些內部的錯誤可能性,所以應將間隔設置為精確度的壹半。
註意 定時器事件生成越頻繁,響應事件所使用的處理器事件就越多。這將降低系統綜合性能。除非有必要,否則不要設置過小的間隔。
-------------------------------------
示例
Private Sub Form_Load ()
Timer1.Interval = 900 ' 設置時間間隔。
HScroll1.Min = 100 ' 設置最小值。
HScroll1.Max = 900 ' 設置最大值。
End Sub
Private Sub HScroll1_Change ()
' 根據滾動條的數值設置時間間隔。
Timer1.Interval = 1000 - HScroll1.Value
End Sub
Private Sub Timer1_Timer ()
' 在紅色和藍色之間切換背景色。
If Picture1.BackColor = RGB(255, 0, 0) Then
Picture1.BackColor = RGB(0, 0, 255)
Else
Picture1.BackColor = RGB(255, 0, 0)
End If
End Sub