如何公开以activex形式创建的组件的属性

你可以发布一个activex表单内的控件的属性?

例如我有一个带有TAdoconnection组件的窗体,我希望用户在加载我的ActiveX控件时可以修改此组件的属性。

替代文字http://i46.tinypic.com/2hd1xr4.png

UPDATE

@TOndrej给了我一个很好的示例,但是这个示例仅适用于从ActiveX控件派生的组件,如何使用像Timage或TMemo这样的VCL组件完成相同的效果? 是否可以发布所有属性而不重写每个属性以手动公开?


ADO组件已经是ActiveX对象,所以最简单的方法是将连接公开为ActiveX表单的简单属性:

在类型库编辑器中,将“Microsoft ActiveX Data Objects 2.1库”添加到使用库的列表中。 这将在您的项目目录中生成ADODB_TLB.pas单元。

替代文字http://i46.tinypic.com/2itfprm.png

然后,您可以在IActiveFormX接口中声明一个新的只读属性ConnectionConnection (此类型在ADODB_TLB单元中声明)。

替代文字http://i47.tinypic.com/2a5atf9.png

在实现中,您可以简单地从TADOConnection组件返回接口:

type
  THackADOConnection = class(TADOConnection);

function TActiveFormX.Get_Connection: Connection;
begin
  Result := Connection(THackADOConnection(ADOConnection).ConnectionObject);
end;

THackADOConnection类型转换只是必需的,因为ConnectionObject受保护。 外部Connection类型转换是为了摆脱编译器错误“不兼容的类型:ADODB_TLB._Connection和ADOInt._Connection”。

链接地址: http://www.djcxy.com/p/34981.html

上一篇: How expose the properties of an component created in an activex form

下一篇: Run an ActiveX through Web