Thema: Delphi ganze Forms abspeichern

Einzelnen Beitrag anzeigen

orakel

Registriert seit: 18. Mai 2004
53 Beiträge
 
Delphi 6 Personal
 
#1

ganze Forms abspeichern

  Alt 19. Jun 2004, 16:23
Hi,
ich habe bei meinem Proggi eine Form, von der aus weitere zur Laufzeit erstellt werden können. Ich möchte nun eine Speicher/Laden -Funktion mit einbauen. Da sollen dann die ganzen Forms (mit Inhalt) abgespeichert werden.
Dazu hab ich folgenden Code aus der Hilfe mal getestet.
Aber irgendwie funktioniert das nicht.(Beispiel)

Delphi-Quellcode:
function ComponentToString(Component: TComponent): string;

var
  BinStream:TMemoryStream;
  StrStream: TStringStream;
  s: string;
begin
  BinStream := TMemoryStream.Create;
  try
    StrStream := TStringStream.Create(s);
    try
      BinStream.WriteComponent(Component);
      BinStream.Seek(0, soFromBeginning);
      ObjectBinaryToText(BinStream, StrStream);
      StrStream.Seek(0, soFromBeginning);
      Result:= StrStream.DataString;
    finally
      StrStream.Free;

    end;
  finally
    BinStream.Free
  end;
end;

function StringToComponent(Value: string): TComponent;
var
  StrStream:TStringStream;
  BinStream: TMemoryStream;
begin
  StrStream := TStringStream.Create(Value);
  try
    BinStream := TMemoryStream.Create;
    try
      ObjectTextToBinary(StrStream, BinStream);
      BinStream.Seek(0, soFromBeginning);
      Result := BinStream.ReadComponent(nil);

    finally
      BinStream.Free;
    end;
  finally
    StrStream.Free;
  end;
end;
Hier mein Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Fenster1:=TForm.Create(self);
  Fenster1.show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Form1.Memo2.Text:=ComponentToString(Fenster1);
end;

procedure TForm1.Button3Click(Sender: TObject);
var Fenster2:TComponent;
begin
  Fenster2:=StringToComponent(Memo2.Text).Create(self);
end;
Was mach ich beim erstellen der neuen Form falsch?

THX orakel
  Mit Zitat antworten Zitat