पर किसी घटक के प्रॉपर्टी एडिटर का आह्वान कैसे करें मैंने TCustomPanel से व्युत्पन्न एक घटक बनाया है। उस पैनल पर मेरे पास TOwnedCollection से व्युत्पन्न कक्षा की एक प्रकाशित संपत्ति है। सभी अच्छी तरह से काम कर रहे हैं और उस संपत्ति के ऑब्जेक्ट इंस्पेक्टर में इलिप्सिस पर क्लिक करने से डिफ़ॉल्ट संग्रह संपादक खुलता है जहां मैं सूची में TCollectionItems का प्रबंधन कर सकता हूं।डिज़ाइन समय
TMyCustomPanel = class(TCustomPanel)
private
...
published
property MyOwnedCollection: TMyOwnedCollection read GetMyOwnedCollection write SetMyOwnedCollection;
end;
मैं डिज़ाइन-टाइम पर पैनल पर डबल-क्लिक करने में सक्षम होना चाहूंगा और संग्रह संपादक को डिफ़ॉल्ट रूप से खोलना होगा। मैंने टीडीफॉल्ट एडिटर से ली गई कक्षा बनाने और इसे पंजीकृत करके शुरू कर दिया है।
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;
किसी भी समाधान या विभिन्न दृष्टिकोण की सराहना की जाएगी।
टीकंपोनेंट एडिटर से व्युत्पन्न करना और शोकॉलेक्शन एडिटर को कॉल करने के लिए प्राप्त/निष्पादित करने के लिए निष्पादित करना पूरी तरह से काम करता है। आपका बहुत बहुत धन्यवाद। – avenmore
वाह, मुझे स्वीकार करना होगा कि मैं थोड़ा आश्चर्यचकित हूं कि यह वास्तव में इतना आसान था, सचमुच उम्र पहले था जब मैंने आखिरी बार ऐसा कुछ किया था! –