// Im Beispiel wird gezeigt, wie man ein TPanel mit einem daraufliegenden TEdit in
// eine Datei (binär) speichert und diese später wieder laden kann.
// Auf der Form befinden sich 2 Buttons (Laden/Speichern) und 1 Panel.
// Das TEdit wird zur Laufzeit erstellt.
// Zum Speichern/Laden wird ein TFilestream und dessen Funktionen
// WriteComponent() und ReadComponent() benutzt.
// Die geladenen Komponenten müssen noch mit RegisterClass(__classid(Typ)) registriert werden.
// Testweise kann etwas in das TEdit geschrieben werden, dieser Text wird dann mit gespeichert.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TEdit *e = new TEdit(Panel1); // Editfeld erzeugen, Owner wird das Panel, das ist
e->Parent = Panel1; // wichtig, damit das TEdit automatisch mit gespeichert wird.
}
// speichern
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Filestream erzeugen, in dem die Komponenten gespeichert werden
TFileStream *fs = new TFileStream("Test.dat", fmCreate);
fs->WriteComponent(Panel1);
delete fs;
// Panel testweise entfernen
delete Panel1;
}
// laden
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// Filestream erzeugen, in dem die Komponenten geladen werden
TFileStream *fs = new TFileStream("Test.dat", fmOpenRead);
RegisterClass(__classid(TPanel)); // TPanel registrieren
RegisterClass(__classid(TEdit)); // TEdit registrieren
TComponent* comp = fs->ReadComponent(NULL);
((TControl*)comp)->Parent = this;
delete fs;
}