![]() |
Panel mit Inhalt in gleiche Form kopieren
Ich hab eine Form, in der sind 4 Panels, mit verschiedenem Inhalt. Jetzt will ich diese Forms anzeigen, aber nicht die "echten" sondern kopien. Also zur Laufzeit erstelle. Wie mach ich das?
|
Re: Panel mit Inhalt in gleiche Form kopieren
Moin Sebastian,
meinst Du das so:
Delphi-Quellcode:
TForm2 ist Klasse des Formulares mit den Paneln.
procedure TForm1.Button1Click(Sender: TObject);
begin with TForm2.Create(self) do begin Show; end; end; |
Re: Panel mit Inhalt in gleiche Form kopieren
meinst du sowas???
Delphi-Quellcode:
frm := TForm.CreateNew(Application);
Panel1.Parent := frm; |
Re: Panel mit Inhalt in gleiche Form kopieren
Sorry, ich glaub ich hab mich verschrieben:
So ist richtig: Zitat:
|
Re: Panel mit Inhalt in gleiche Form kopieren
Weiß denn keiner Bescheid?
Ist echt wichtig? |
Re: Panel mit Inhalt in gleiche Form kopieren
Wenn Das nur Vorlagen sind, solltest Du Dir mal die Frames zu Gemüte führen,
dann dafür sind die da. Ansonsten kannst Du nur über Form.Components alle Componenten durchlaufen und die, deren parent auf PanelX ist in die neue Form kopieren (also createn und alle eigenschaften/events nach Vorlage zuordnen. Mußt aber daran denken, ob Du die ganze Sache rekursiv angehst, weil diese Komponenten könnten dann ja wieder weitere Komponenten haben, deren parent Sie sind. Einfacher geht es wirklich mit Frames, da der Frame mit allen Inhalten wie ein Objekt behandelt werden kann und ein "einfaches " TFrame.create Dir alle Komponenten nach Vorlage erzeugt. |
Re: Panel mit Inhalt in gleiche Form kopieren
Cool..Wusst ich garnicht..Werd ich gleich mal ausprobieren
|
Re: Panel mit Inhalt in gleiche Form kopieren
Schon mal an eine Panel-Klasse gedacht,
der die Controls dynamisch erzeugt werden? |
Re: Panel mit Inhalt in gleiche Form kopieren
Nö...Was heißt das??
|
Re: Panel mit Inhalt in gleiche Form kopieren
Du leidest :wink: entweder von TPanel besser TForm eine neue Klasse ab.
Im Konstruktor erzeugt du dann deine Control's dynamisch. In der Art...
Delphi-Quellcode:
T??? = class (TForm)
public constructor Create(afOwner : TComponent); override; end; constructor T???.Create ... begin inherited CreateNew(afOwner); // <--- CreateNew // Man kann an dieser stelle auch die Delphi-Form-Resource laden, die // man vorher in einem anderen Programm erstellt hat. // das ist relativ kompliziert - geht aber gut - selbst schon probiert // danach musst du googlen oder ne neue Frage erstellen with TEdit.Create(Self) do begin // bla bla bla end; ... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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 by Thomas Breitkreuz