TCustomPanel'den türetilen bir bileşen oluşturdum. Bu panelde, TOwnedCollection'dan türetilmiş bir sınıfın yayınlanmış mülküm var. Her şey iyi çalışıyor ve nesne denetçisinde üç noktaya tıklayarak bu özellik listede bulunan TCollectionItems'i yönetebileceğim varsayılan koleksiyon editörünü açar. Ben de muktedir istiyorumBir bileşenin özellik düzenleyicisinin tasarım zamanında çağrılması nasıl yapılır?
TMyCustomPanel = class(TCustomPanel)
private
...
published
property MyOwnedCollection: TMyOwnedCollection read GetMyOwnedCollection write SetMyOwnedCollection;
end;
tasarım zamanında panelde çift tıklayın ve toplama editörü varsayılan olarak açmak var. TDefaultEditor'dan türetilen bir sınıf oluşturarak ve kaydettirerek başladım.
TMyCustomPanelEditor = class(TDefaultEditor)
protected
procedure EditProperty(const PropertyEditor: IProperty; var Continue: Boolean); override;
end;
RegisterComponentEditor(TMyCustomPanel, TMyCustomPanelEditor);
Bu doğru zamanda çalıştırılacak görünüyor, ama ben o zaman toplama özelliği editörü başlatmak için nasıl şaşırıp.
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;
herhangi bir çözelti ya da farklı bir yaklaşım
takdir.
TComponentEditor'dan türetme ve ShowCollectionEditor'ı çağırmak için Get/ExecuteVerb'yi uygulamak mükemmel bir şekilde çalıştı. Çok teşekkür ederim. – avenmore
Vay, itiraf etmeliyim ki, gerçekten bu kadar kolay bir şey olduğunu anladım. –