Как вызвать редактор свойств компонента по времени проектирования

Я создал компонент, полученный из TCustompanel. На этой панели у меня есть опубликованная собственность класса, полученного из TownedCollection. Все работает хорошо и нажимает на ellipsis в инспекторе объекта для этого свойства открывает редактор коллекции по умолчанию, где я могу управлять TCOLLECTITEMS в списке.

  TMyCustomPanel = class(TCustomPanel)
  private
  ...
  published
    property MyOwnedCollection: TMyOwnedCollection read GetMyOwnedCollection write SetMyOwnedCollection;
  end;

Я также хотел бы иметь возможность дважды щелкнуть на панели в Design-Time, и по умолчанию открывается редактор коллекции. Я начал, создав класс, полученный из TDefaultitor и зарегистрировал его.

  TMyCustomPanelEditor = class(TDefaultEditor)
  protected
    procedure EditProperty(const PropertyEditor: IProperty; var Continue: Boolean); override;
  end;

  RegisterComponentEditor(TMyCustomPanel, TMyCustomPanelEditor);

Это, кажется, работает в нужное время, но я застрял, как запустить редактор недвижимости для коллекции в то время.

procedure TMyCustomPanelEditor.EditProperty(const PropertyEditor: IProperty; var Continue: Boolean);
begin
  inherited;

  // Comes in here on double-click of the panel
  // How to launch collection editor here for property MyOwnedCollection?

  Continue := false;
end;

Любое решение или другой подход будет оценен.

7
задан Warren P 12 March 2012 в 20:04
поделиться