![]() |
Property Editor mit Array of Objects
Hallo,
ich schreibe derzeit eine eigene Komponente, in der es eine Eigenschaft gibt, die einen Property Editor öffnet. Das Öffnen eines eigenen Formulares nachdem '...' gedrückt wurde, funktioniert bisher auch wunderbar, nur funktioniert es noch nicht so ganz mit der Über-/Rückgabe des Wertes. Meine Eigenschaft: TMyObjects = array of TMyobject Damit etwas passiert, muss man ja die Edit Methode überschreiben:
Code:
Nur leider funktioniert das ganze nicht so wie gedacht. Meine Liste ist beim nächsten öffnen des Formulars wieder leer.
...
procedure TMyEditor.Edit; var lform: TMyForm; begin lform := TMyForm.Create(nil); try //Übergabe des gesamten Inhalts an die korrespondierende Eigenschaft des Formulars lform.Items := TMyObjects(GetOrdValue); //Formular fügt Items hinzu oder entfernt welche lform.ShowModal; //Anschließend sollen die Items wieder im Property stehen SetOrdValue(lform.Items); finally FreeAndNil(lform); end end; ... Wäre nett, wenn mir jemand nen Tip geben könnte wie ich das in den Griff bekommen könnte, bzw. besser machen könnte. Vielen Dank. Gruß mc |
AW: Property Editor mit Array of Objects
Array-Eigenschaften können nicht als published deklariert werden und vom Streaming-System daher nicht behandelt. Du muss also selber mittels DefineProperties für das Speichern und Laden sorgen.
|
AW: Property Editor mit Array of Objects
@UweRaabe ist das nicht verwandt mit
![]() |
AW: Property Editor mit Array of Objects
@Bummi, psst! Wir wollen doch hier nicht unsere Quellen verraten :wink:
Aber es ist schon erstaunlich häufig, daß ähnliche Anfragen von verschiedenen Leuten in kurzem Abstand auf unterschiedlichen Plattformen gestellt werden. |
AW: Property Editor mit Array of Objects
murphys law :)
|
AW: Property Editor mit Array of Objects
Vielen Dank für die Antworten.
Das heißt, wenn ich mir den Link ![]() Vielen Dank. Gruß mc |
AW: Property Editor mit Array of Objects
Zitat:
Wie ich in meiner Antwort beschrieben habe, musst du die Methoden ReadMyArray und WriteMyArray (die Namen sind willkürlich gewählt) implementieren und diese in DefineProperties als Parameter den DefineProperty-Aufruf mitgeben. Es würde auch helfen, wenn du verstehst, was bei DefineProperties passiert, insbesondere wann und von wem es aufgerufen wird. Das Delphi-Streaming-System ist nicht mal eben in ein paar Worten erklärt. |
AW: Property Editor mit Array of Objects
Eine Alternative wäre evtl. die Verwendung von
![]() Das Speichern im Formular wird damit zumindest leichter. |
AW: Property Editor mit Array of Objects
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz