VB中創建超長時間計時器對象
(長沙交通學院 信息與計算科學系 長沙410076) 作者:李湘江 鄒筱梅摘 要:本文介紹在VB程序中用Timer控件創建一個超長時間的計時器對象,將其編譯成ActiveX DLL部件,利用代碼的可重用性,在其它應用程序中調用。
關鍵詞:Vb 計時器 對象
VB系統中提供了固有計時器Timer控件,通過給計時器控件的Interval屬性設置不同的數值,就可以控制計時器運行的時間間隔,但該屬性是一個雙字節的整型變量,最大值只能設置為65535,即只有65535毫秒,約一分鐘多一點,在需要長時間計時時,該控件就無能為力了。本文給出用Timer控件創建一個超長時間的計時器對象,并將其編譯成ActiveX DLL部件,供其它應用程序調用,可實現最大限度地利用代碼的可重用性。下面給出這個超長計時器對象的編程設計過程,供讀者參考選用。
1.編寫程序
啟動VB,新建一個ActiveX DLL工程,將工程命名為NewTimer,將類模塊名Class1改名為LongTimer。在工程中添加一個窗體Form1,在窗體上加入一個Timer計時器控件Timer1。打開LongTimer類模塊,加入如下程序代碼:
Option Explicit
Public Event Tick() '聲明事件
Private nz As Integer
Private cs As Integer
Private m_Form As Form1
Private WithEvents m_Timer As Timer '聲明對象類變量
'返回Enable屬性值
Public Property Get Enabled() As Boolean
Enabled = m_Timer.Enabled
End Property
'設置Enable屬性值
Public Property Let Enabled(ByVal vNewValue As Boolean)
m_Timer.Enabled = vNewValue
End Property
'返回Interval屬性值
Public Property Get Interval() As Long
Interval = m_Timer.Interval
End Property
'設置Interval屬性值
Public Property Let Interval(ByVal vNewValue As Long)
cs = 0
nz = vNewValue \ 65536 + 1
m_Timer.Interval = vNewValue \ nz
End Property
'類初始化事件
Private Sub CLASS_Initialize()
Set m_Form = New Form1
Load m_Form
Set m_Timer = m_Form.Timer1
End Sub
'類終止事件
Private Sub CLASS_Terminate()
Unload m_Form
Set m_Timer = Nothing
End Sub
'產生Tick事件
Private Sub m_Timer_Timer()
cs = cs + 1
If cs >= nz Then
RaiseEvent Tick
cs = 0
End If
End Sub
窗體Form1只用來作計時器Timer1的載體,不用于顯示。
2.測試NewTimer.DLL
對ActiveX DLL部件進行測試,與標準的EXE程序一樣,可分為單步運行或全運行。在寫完所有程序代碼后,建議用戶先用Ctrl+F5進行全編譯執行,發現檢查NewTimer程序的語法錯誤。也可建立一個測試工程與NewTimer鏈接進行測試,針對由NewTimer類模塊提供的每個屬性和事件,添加測試代碼來測試它們的屬性和方法。按F8,進入單步運行狀態,逐個語句察看對NewTimer類模塊的調用情況。
3.編譯NewTimer.DLL
完成測試,排除所有錯誤后,從“文件(F)”菜單中選擇“生成NewTimer.dll(K)”命令,編譯生成NewTimer.dll文件。編譯成功后NewTimer.dll文件將自動注冊到Windows注冊表中,
4.引用NewTimer.DLL
引用ActiveX DLL部件同引用其他對象一樣,從“工程(P)”菜單中選擇“引用(N)”命令,打開引用窗口,從引用列表中選中NewTimer對象。如果是第一次引用NewTimer,則在引用窗體上單擊“游覽(B)”命令按鈕,將NewTimer.DLL文件添加到可引用列表框中方可使用。
5.調用NewTimer.DLL
在應用程序中加入下述程序代碼,實現參NewTimer.dll的調用:
Option Explicit
Dim WithEvents LongTimer1 As LongTimer
Private Sub LongTimer1_Tick()
Print "時間到,此處添加處理程序"
End Sub
Private Sub Command1_Click()
LongTimer1.Interval = 12000 ‘兩分鐘
Lon
gTimer1.Enabled = True
End Sub
Private Sub Form_Load()
Set LongTimer1 = New LongTimer
End Sub
參考文獻
[2]東箭工作室.Visual Basic5.0中文版程序設計.清華大學出版社,1997
[3]Evangelos Petroutsos. Visual Basic5從入門到精通.北京:電子工業出版社,1997
------------------------------------------------------------------------------
作者簡介:李湘江,男,工程師,主要從事網絡、CAD、CAI、軟件工程方面的應用研究。
作者單位:長沙交通學院信息與計算科學系 長沙410076
電話:0731-5219487(辦)
Email:lxjzy@263.net
【VB中創建超長時間計時器對象】相關文章:
VB中創建超長時間計時器對象08-06
VB中創建超長時間計時器對象08-06
在VB中如何使用 Winsock 控件08-06
計時器作文11-24
超長網名08-16
超長網名08-12
超長網名傷感06-03
女生超長網名08-16