![]() |
Formular clonen
Hier wird gezeigt, wie man ein Formular zur Programmlaufzeit clonen kann.
Alle Komponenteneigenschaften des aktuellen Formulars werden kopiert. Private Daten werden nicht kopiert.
Delphi-Quellcode:
Hier ist noch ein Beispiel, wie man die Funktion CloneForm anwendet:
// diese Funktion erzeugt ein neues Form aus dem aktuellen Form
function TForm1.CloneForm: TForm; var mstream: TMemoryStream; begin mstream := TMemoryStream.Create; try mstream.WriteComponent(self); // der Trick: die aktuelle Klasse wird nach TFormClass gecastet // und dann mit CreateNew eine neue, leere Instanz erzeugt Result := (TFormClass(Self.ClassType)).CreateNew(Application); mstream.Position := 0; mstream.ReadComponent(Result); finally mstream.Free end; end;
Delphi-Quellcode:
Man darf das Form, dass von CloneForm geliefert wird auch auf die eigene
procedure TForm1.Button1Click(Sender: TObject);
var f : TForm; begin f := CloneForm; f.Visible := False; // unsichtbar machen f.Caption := 'this is the cloned form'; f.Left := f.Left+10; f.Top := f.Top +10; f.ShowModal; // modal anzeigen f.Free; end; FormKlasse casten:
Delphi-Quellcode:
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
procedure TForm2.Button1Click(Sender: TObject);
var f : TForm2; begin f := CloneForm as TForm2; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz