Einzelnen Beitrag anzeigen

monty.ms

Registriert seit: 19. Nov 2004
76 Beiträge
 
#1

Speichern von Komponenten

  Alt 18. Nov 2007, 18:34
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
  Mit Zitat antworten Zitat