Hallo
Ich wollte eine Komponente mittels MemoryStream speichern und laden, aber irgendwie funktioniert das nicht ganz:
Delphi-Quellcode:
type
TTest = class(TComponent)
public
E1: String;
E2: String;
E3: String;
I1: Integer;
constructor Create(Text: String); overload;
procedure Irgendwas(Text:String);
end;
Speichern:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR MeinStream : TMemoryStream;
MeinObjekt : TTest;
begin
MeinObjekt := TTest.Create('Bla');
MeinObjekt.E1 := 'Test';
MeinStream := TMemoryStream.Create;
MeinStream.Clear;
MeinStream.WriteComponent(MeinObjekt);
MeinStream.SaveToFile('c:\test.dat');
MeinStream.Free;
end;
Laden:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
VAR MeinStream : TMemoryStream;
MeinObjekt : TTest;
begin
MeinObjekt := TTest.Create('Bla');
MeinStream := TMemoryStream.Create;
MeinStream.LoadFromFile('c:\test.dat');
MeinStream.ReadComponent(MeinObjekt);
MeinStream.Free;
ShowMessage(MeinObjekt.E1);
end;
Das Problem ist, dass wenn ich lade, die Variable E1 nicht den String "Test" enthält sondern leer ist. Weis einer was ich falsch gemacht habe? Warum die Variable nicht mit abgespeichert wird?
Danke schonmal für die Hilfe!
monty