Einzelnen Beitrag anzeigen

r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#20

Re: Sub-Komponenten serialisieren

  Alt 3. Sep 2006, 15:38
Zitat von DGL-luke:
öhm.... ich muss das im konstruktor erstellen?! ich dachte, der zweck vom deserialisieren ist, dass mans eben nicht erstellt....
Ich hab schon oben mal angedeutet, dass beim Deserialisieren nur folgendes passiert:
- Der entsprechende Konstruktor wird aufgerufen
- die published Properties werden einzeln aus der Datei geparst und per RTTI dem gerade erstellten Objekt zugewiesen.

Was aber passiert, wenn das Unterobjekt(dein Control) nicht im Konstruktor erstellt wird? Richtig es gibt ne exception, weil kein weiterer Konstruktor mehr aufgerufen wird. Warum is das aber so? Angenommen es würde wirklich der Konstruktor des Unterobjekts aufgerufen werden. Dann wird dieses neu erstellt. Angenommen du hast sowas im Konstruktor deiner manager-Klasse:
Delphi-Quellcode:
constructor TButtonManager.Create;
begin
  inherited Create;
  FButton := TButton.Create;
  AndererPointer := FButton;
  ...
end;
Und dann such mal den Fehler, wenn du dich wunderst, dass es beim Zugriff auf AndererPointer ne AV gibt...

Zitat:
Aber nach DFM sieht das nicht aus

Code:
‘  TPF0
TFormPanel Control.Left¨ Control.Topš
Control.WidthControl.HeightControl.TabOrder LeftPx¨ TopPxš HeightPxWidthPx
Sieht für mich nach ner Binär-DFM aus. Da gibts 2 Möglichkeiten: a) au öffnest die Datei mit nem Editor der das lesen kann(z.B. Delphi) oder b) du serialisierst in Text-DFMs: Delphi-Referenz durchsuchenObjectBinaryToText. Wenn du n funktionierendes Beispiel brauchst: Hier im Forum suchenTOptions

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat