Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#9

AW: Komplettes Formular speichern/laden

  Alt 30. Mai 2012, 16:59
      Form_neu := TForm1.Create(Stream.ReadComponent(Form1) as TForm1);
Das geht so auch nicht! Dein Code macht in etwa folgendes:

Lese eine Komponente aus dem Stream und verwende als Instanz für die Daten Form1 (dabei werden aber alle Child-Komponenten nochmal erzeugt) und gib diese Instanz als Funktionswert zurück. Dann erzeuge ein neues TForm1 (TForm1.Create) mit der gerade gelesenenen Instanz als Owner und weise sie Form_neu zu. Form_neu ist jetzt aber leer und eine Child-Komponente von Form1.

So sollte es funktionieren:
Delphi-Quellcode:

Form_neu := Stream.ReadComponent(nil) as TForm1;
oder so:
Delphi-Quellcode:
Form1.DestroyComponents;
Stream.ReadComponent(Form1);
Übrigens: Raize-Components hat eine TRzPropertyStore-Komponente, mit der man einzelne Properties des Forms und seiner Komponenten in der Registry oder einem IniFile speichern und auch wieder laden kann.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat