Я создал компонент, полученный из 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;
Любое решение или другой подход будет оценен.