gpt4 book ai didi

delphi - 如何公开以 ActiveX 表单创建的组件的属性?

转载 作者:行者123 更新时间:2023-12-02 01:26:22 25 4
gpt4 key购买 nike

您可以发布 ActiveX 表单内的控件的属性吗?

示例:我有一个带有 TADOConnection 组件的表单。我希望用户加载我的 ActiveX 控件时可以修改该组件的属性。

alt text

更新

@TOndrej 为我提供了一个非常好的示例,但该示例仅适用于从 ActiveX 控件派生的组件。如何使用 TImage 或 TMemo 等 VCL 组件实现同样的效果?是否可以发布所有属性而无需重写每个属性以手动公开它们?

最佳答案

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

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

alt text

然后你可以声明一个新的只读属性 Connection类型 Connection (此类型在 ADODB_TLB 单元中声明)在 IActiveFormX 中界面。

alt text

在实现中,您只需从TADOConnection返回接口(interface)即可。组件:

type
THackADOConnection = class(TADOConnection);

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

THackADOConnection类型转换是必要的,因为 ConnectionObject受到保护。外层Connection类型转换是为了消除编译器错误“不兼容的类型:ADODB_TLB._Connection 和 ADOInt._Connection。”

关于delphi - 如何公开以 ActiveX 表单创建的组件的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2919099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com