0

独自のタイプのプロパティを持つコンポーネント クラスを定義しました。

  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;

ここに画像の説明を入力

4

0 に答える 0