IFIX的定時器使用方法
對于iFix3.5畫面上的定時器,應該來講應用是非常簡單的,然而,在腳本VBA中創建的窗體中并沒有定時器這個控件,那么如何在VBA窗體中實現定時器的功能呢?
如果大家用過C語言,那么就知道在C語言中是采用SetTimer和KillTimer來創建和注銷定時器的,在iFixVBA中我們也采用這兩個函數來實現定時器的功能。
新建一個畫面,命名為Timer。
進入腳本,新建一個窗體,新建一個模塊。在窗體上添加一個命令按鈕控件
模塊1里的代碼如下:
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long,ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc AsLong) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long,ByVal nIDEvent As Long) As Long
‘這兩個是對API函數SetTimer和KillTimer的引用。
Sub Timer_eg() ‘用來測試定時器,按照設定時間間隔觸發
UserForm1.Caption = UserForm1.Caption + 1 ‘用來使窗體的CAPTION變化
End Sub
窗體下的代碼如下:
Dim timerset As Integer
‘設置一個定時器,時間間隔為150毫秒,入口函數為Timer_eg,即每隔150毫秒
啟動一次Timer_eg。
Private Sub CommandButton1_Click()
timerset = SetTimer(0, 0, 150, AddressOf Timer_eg)
End Sub
Private Sub UserForm_Activate()
UserForm1.Caption = 0 ‘初始化設置窗體CAPTION為0
End Sub
‘如果窗體注銷,注銷定時器
Private Sub UserForm_Terminate()
If timerset <> 0 Then
timerset = KillTimer(0, timerset)
End If
End Sub
然后在畫面上添加一個命令按鈕控件,腳本如下:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
現在運行畫面,點擊畫面按鈕