有一段代码:
var
myobject: OleVariant;
begin
myobject := CreateOleObject('SomeNamespace.SomeClass');
end;
该 COM 对象具有事件(例如 OnClick)。我应该如何在不导入 TLB 的情况下连接到这些事件?
您正在使用 COM 后期绑定,因此您需要编写大量代码来处理事件吗?如果你了解 COM,这个任务并不困难,基本上你需要遵循以下步骤。
- 创建一个派生自的新对象(类)TInterfacedObject实现
IDispatch
- 实施
Invoke()
你的新类的功能
- 查询连接点容器(IConnectionpointContainer)和所需的连接点。
- 使用下沉连接点IConnectionPointContainer.FindConnectionPoint
- 最后执行IConnectionPoint.Advise()使用你的实现
这
IDispatch
您可以在这些链接上找到此实现的示例
如何使用使用 createoleobject 创建的对象事件罢工>
Delphi 5 运行 powerpoint(使用带有事件的后期绑定对象的示例)罢工>
-
Delphi 5运行powerpoint(使用带有事件的后期绑定对象的示例)
尝试这些链接以获取有关 COM、后期绑定和事件的更多信息
- Delphi COM 编程中的自动化
- 支持 Delphi 中的自动化事件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)