给个示例
VFP与高级COM组件事件绑定
VFP的 EVENTHANDLER 命令允许绑定一个 COM 服务程序事件到一个VFP对象上被实现接口的方法
例:VFP绑定MSScriptControl库的ScriptControl对象事件Error和Timeout
操作过程:
1、打开VFP的对象浏览器
2、打开类型库,在COM库页选择 Microsoft Script Control 1.0
3、在“类和成员”列表的“接口”点击 DScriptControlSource,右边“使用该接口的类”看到ScriptControl
4、在“类和成员”列表的“类”点击 ScriptControl,右边“事件”看到Error、Timeout
5、分别点击 Error 和 Timeout,下边信息框看到:
事件 Error() 为 空的
事件 Timeout() 为 空的
两个事件函数无入口参数,返回值“空”值(无定义返回值)
指定数据类型可参考 DIMENSION 命令的 AS cType 说明
下面代码会触发 Error 事件
VFP与高级COM组件事件绑定
VFP的 EVENTHANDLER 命令允许绑定一个 COM 服务程序事件到一个VFP对象上被实现接口的方法
例:VFP绑定MSScriptControl库的ScriptControl对象事件Error和Timeout
操作过程:
1、打开VFP的对象浏览器
2、打开类型库,在COM库页选择 Microsoft Script Control 1.0
3、在“类和成员”列表的“接口”点击 DScriptControlSource,右边“使用该接口的类”看到ScriptControl
4、在“类和成员”列表的“类”点击 ScriptControl,右边“事件”看到Error、Timeout
5、分别点击 Error 和 Timeout,下边信息框看到:
事件 Error() 为 空的
事件 Timeout() 为 空的
两个事件函数无入口参数,返回值“空”值(无定义返回值)
指定数据类型可参考 DIMENSION 命令的 AS cType 说明
下面代码会触发 Error 事件
程序代码:
TEXT TO cCode TEXTMERGE NOSHOW PRETEXT 7 function fun() { return 123+a; } ENDTEXT sc = CREATEOBJECT("ScriptControl") et = CREATEOBJECT("myEvents") EVENTHANDLER(sc, et) sc.Language = "JavaScript" sc.AddCode(cCode) ? sc.Run("fun") RETURN DEFINE CLASS myEvents AS session OLEPUBLIC IMPLEMENTS DScriptControlSource IN "ScriptControl" PROCEDURE DScriptControlSource_Error() as VOID ? "触发Error事件" ENDPROC PROCEDURE DScriptControlSource_Timeout() as VOID ? "触发Timeout事件" ENDPROC ENDDEFINE