我有一个第三方Active X .ocx文件,我已导入Delphi XE2并为其创建了一个TLB文件。
Active X库是一个“非可视”组件,但如果放在表单上则显示为图像。
我想在Active X库中调用此组件,并且可以正常访问其方法和属性,但不知道如何访问其事件。 我想我也许可以将它添加到数据模块中,但这似乎不是作为工具选项板中的选项提供的。这有可能吗?
我尝试通过执行以下操作添加事件: actX3Party:= T3Party.Create(nil); actX3Party.On3PartyEvent:= myEventHandler;
但不知道如何使'myEventHandler'成为事件处理程序,因为没有表格。
谢谢
答案 0 :(得分:1)
您不需要表单来实现事件处理程序。你需要的只是一堂课。您可以使用实例方法或类方法实现事件处理程序。当然,如果您选择使用实例方法,则需要实例化实例。
因此,决定是否要使用实例方法或类方法。然后创建一个定义事件处理程序的类。如果您正在使用实例方法,请实例化该类。最后,将处理程序分配给事件。
例如:
type
TMyClass = class
public
class procedure MyHandler1(Sender: TObject);
procedure MyHandler2(Sender: TObject);
end;
我不知道你的事件接收了什么参数,所以上面只是为了举例。显然你需要实现这些方法。
您可以立即使用课程程序:
actX3Party.On3PartyEvent := TMyClass.MyHandler1;
对于实例方法,创建一个实例:
myInstance := TMyClass.Create;
actX3Party.On3PartyEvent := myInstance.MyHandler2;
如果将事件处理程序分配给ActiveX控件的代码存在于类中,则不需要其他类。您可以在该课程中实现处理程序。
因此,再一次,事件处理程序不需要在表单中实现。它们只是一个类的方法。