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
现在运行画面,点击画面按钮