给个示例
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



