【发布时间】:2012-03-15 02:52:45
【问题描述】:
我希望我的非可视组件将其发布的属性置于不在 Object Inspector 顶层的类别下。
举个例子:
type
TMyComponent = class(TComponent)
protected
function GetSomeValue: string;
function GetSomeValueExt: string;
published
property SomeValue: string read GetSomeValue;
property SomeValueExt: string read GetSomeValueExt;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('My Component', [TMyComponent]);
end;
function TMyComponent.GetSomeValue: string;
begin
Result := 'test';
end;
function TMyComponent.GetSomeValueExt: string;
begin
Result := 'extended..';
end;
如何让我的组件在名为 MyProperties 的类别下使用 SomeValue 和 SomeValueExt 在 Object Inspector 中注册?
插图:
我的组件可能有很多已发布的属性,我希望它们位于对象检查器的自己级别子类别下,以使其远离名称和标签等常见属性。
谢谢:)
【问题讨论】:
-
您是在谈论对象检查器使用的类别术语吗?这就是您右键单击 OI 并选择“按类别查看”的功能。
-
例如,您单击 TForm 或其他组件,某些属性位于 Anchors、BorderIcons 和 Font 等类别下。如果有意义的话,我希望我的一些属性有自己的父级。
-
Anchors和BorderIcons是集合。你不想要那个。Font属性是一个类。因此,您可以将子属性包装在一个类中,然后免费获得您想要的行为。 -
所以我可以把 SomeValue 和 SomeValueExt 放在自己的类中,它是 TMYComponent 的父类,对吗?
-
然后将屏幕截图替换为说明类别视图的屏幕截图。或者,我们没有得到您真正想要的 XY。