gpt4 book ai didi

delphi - 如何创建列出其他组件的组件属性?

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

SynEdit 组件具有“荧光笔”属性,其中包含一个下拉列表,其中列出了所有当前存在的荧光笔(设计时)。对我来说,这似乎是设计时组件的一个非常重要的概念,但我根本无法弄清楚它是如何工作的:

假设您将 TSynEdit 和 TSynPasSyn 拖放到表单上。然后单击具有“荧光笔”属性的 TSynedit。您现在可以选择之前创建的 TSynPasSyn。如果您创建另一个 TSynPasSyn,它也会添加到此列表中。我的问题:

在您自己的组件中执行此类操作的最佳方法是什么?您可以简单地使用属性编辑器还是需要自定义帮助器类,或者完全不同的东西?

最佳答案

也许这会让您感到惊讶,但是不需要任何操作就可以在您自己的组件的组件属性的属性编辑器中列出现有组件。只需将属性声明为所需的类型,VCL 框架就会完成剩下的工作。

例如,考虑这个非常简单的组件:

type
TButtonSelector = class(TComponent)
private
FButton: TButton;
published
property Button: TButton read FButton write FButton;
end;

在 IDE 中安装此组件后,当您在对象检查器中选择 Button 属性时,将列出当前表单上的所有现有按钮。

这一切都内置在 DesignEditors.TComponentProperty 中,这意味着唯一的要求是让您想要的对象从 TComponent 选择血统。

关于delphi - 如何创建列出其他组件的组件属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20159744/

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