Hallo zusammen,
bin nach endlosem Suchen und Probieren mit meinem Delphi-Latein am ende
Habe eine Anwendung geschrieben (Delphi7), die es mir erlaubt zur Laufzeit neue Forms und Komponenten zu erstellen. Eine Art Form-Designer.
Nun möchte ich dieses erstellte Form in eine Datei schreiben.
Delphi-Quellcode:
procedure TForm1.Frameexportieren1Click(Sender: TObject);
var
FileStream : TFileStream;
BinStream : TMemoryStream ;
begin
FileStream := TFileStream.Create('c:\form.txt', fmCreate);
BinStream := TMemoryStream.Create;
try
BinStream.WriteComponent(newForm);
BinStream.Position := 0;
ObjectBinaryToText(BinStream, FileStream);
finally
BinStream.Free;
FileStream.Free;
end;
end;
Damit bekomme ich aber nur dsa Form, ohne Komponenten exportiert.
Verwende ich folgende Lösung:
Delphi-Quellcode:
procedure TForm1.Fe(Sender: TObject);
var
rs: TResourceStream;
ms: TMemoryStream;
begin
rs := TResourceStream.Create(HInstance, ClassName, RT_RCDATA);
try
ms := TMemoryStream.Create;
try
ObjectBinaryToText(rs, ms);
ms.Seek(0, 0);
ms.SaveToFile('C:Testfrm.txt');
memo1.Lines.LoadFromStream(ms);
finally
ms.Free;
end;
finally
rs.Free;
end;
end;
kann ich Classname nicht mit newform.ClassName ansprechen, da Delphi die Resource dann nicht kennt.
Wer kann mir weiterhelfen? Wenn weitere Informationen gebraucht werden bitte nachfragen.
Vielen Dank im vorraus!