我已经定义了一个组件类,它具有自己的类型的属性:
TMyComponent = class(TComponent)
private
FLinkedComponent : TMyComponent;
procedure SetLinkedComponent(AValue : TMyComponent);
published
property LinkedComponent : TMyComponent read FLinkedComponent write SetLinkedComponent;
end;
在 中Object Inspector
,它显然允许我将LinkedComponent
属性分配给组件本身,但我不希望它发生。
目前,我已经通过向属性设置器添加条件来实现我的目标,但我想知道是否有办法避免组件显示在下拉列表中。
procedure TMyComponent.SetLinkedComponent(AValue : TMyComponent);
begin
if(AValue = Self)
then raise Exception.Create('Can''t set this component as LinkedComponent');
FLinkedComponent := AValue;
end;