ID : 5768
AddHandler
功能
根据指定的插件对象执行事件接收方法的登录。以后,如果插件中发生事件,则将调出登录方法。
格式
AddHandler 对象, 事件名称, 事件接收方法
指定项目
- 对象
- 指定发生事件的对象。 指定通过AddController获取的对象。
- 事件名称
- 通过字符串型数据指定要接收的事件名称。通常指定为“OnMessage”。
- 事件接收方法
- 指定接收事件的处理方法。
解说
根据指定的插件对象执行事件接收方法的登录。以后,如果插件中发生事件,则将调出登录方法。
此方法需为以下格式。
Sub 方法名称(ByVal Sender As Object, ByVal Args As Variant) '... End Sub
虽然可任意指定方法名称,但是为了提高可读性,推荐使用与事件名称相应的方法名称。其它类型为固定。请务必使用上述规定的类型。
通常在方法名称中指定OnMessage,方法如下所述。
Sub OnMessage (ByVal Sender As Object, ByVal Args As Variant)
'...
End Sub
无需从插件中接收事件时,调出RemoveHandler执行完成处理。
相关项目
应用示例
为使用QR代码插件,在QR代码读取器读取QR代码时,接收读取数据的示例。Dim g_Counter As Integer = 0 '接收个数
Sub Main()
Dim ctrl As Object
ctrl = Cao.AddController( "QR", "CaoProv.DENSO.QRCode", "",
"Conn=com:6:38400:N:8:1, Mode=5, Protocol=0:0:0" )
'指定接收事件的名称和位置
AddHandler ctrl, "OnMessage", OnMessage
g_Counter = 0
'事件的接收等待环路
Do
Delay 10
If g_Counter >= 3 Then Exit Do
Loop
'解除接收
RemoveHandler ctrl
End Sub
'Event Handler for OnMessage
Sub OnMessage( ByVal Sender As Object, ByVal Args As Variant )
Dim msg as object
msg = Args(0) '::= CaoMessage object
PrintDbg "" & Time & " - CODE = [" & msg.Value & "]"
g_Counter = g_Counter + 1
End Sub
ID : 5768