Delphi createOleobject事件
-
30-09-2019 - |
题
有一个代码:
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 Running PowerPoint (例如,使用事件使用后期绑定对象)
尝试这些链接以获取有关com,滞纳和事件的更多信息
不隶属于 StackOverflow