SynEdit组件具有属性“Highlighter”,其中包含一个下拉列表,其中列出了所有当前存在的荧光笔(设计时)。对我而言,这似乎是设计时组件的一个非常重要的概念,但我根本无法找到它的工作原理:
假设您将TSynEdit和TSynPasSyn下载到表单上。然后单击具有Highlighter属性的TSynedit。您现在可以选择以前创建的TSynPasSyn。如果您创建另一个TSynPasSyn,它也将添加到此列表中。我的问题:
哪种方法可以在您自己的组件中执行此类操作?您可以简单地使用属性编辑器,还是需要自定义帮助程序类,或者完全不同的东西?
答案 0 :(得分:11)
也许这会让您大吃一惊,但是在您自己的组件中,只需要在组件属性的属性编辑器中列出现有组件即可。只需将属性声明为所需类型,VCL框架将完成其余的工作。
例如,请考虑这个非常简单的组件:
type
TButtonSelector = class(TComponent)
private
FButton: TButton;
published
property Button: TButton read FButton write FButton;
end;
在IDE中安装此组件后,在Object Inspector中选择Button属性时,将列出当前表单上的所有现有按钮。
这都是DesignEditors.TComponentProperty
内置的,这意味着唯一的要求就是让您想要选择的对象从TComponent
下降。