Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Panel mit Inhalt in gleiche Form kopieren (https://www.delphipraxis.net/10007-panel-mit-inhalt-gleiche-form-kopieren.html)

Nalincah 9. Okt 2003 13:53


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?

Christian Seehase 9. Okt 2003 13:57

Re: Panel mit Inhalt in gleiche Form kopieren
 
Moin Sebastian,

meinst Du das so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with TForm2.Create(self) do begin
    Show;
  end;
end;
TForm2 ist Klasse des Formulares mit den Paneln.

neolithos 9. Okt 2003 13:58

Re: Panel mit Inhalt in gleiche Form kopieren
 
meinst du sowas???

Delphi-Quellcode:
frm := TForm.CreateNew(Application);
Panel1.Parent := frm;

Nalincah 9. Okt 2003 13:58

Re: Panel mit Inhalt in gleiche Form kopieren
 
Sorry, ich glaub ich hab mich verschrieben:

So ist richtig:
Zitat:

Ich hab eine Form, in der sind 4 Panels, mit verschiedenem Inhalt. Jetzt will ich diese Panels anzeigen, aber nicht die "echten" sondern Kopien. Also zur Laufzeit erstellen. Wie mach ich das?
Also ne Kopie von Panel1 in Form1 erstellen. Die Originale sind nur Vorlagen. Als Beispiel: Der Expression-Editor bei der QRExpr-Komponenten vom QuickReport

Nalincah 9. Okt 2003 14:36

Re: Panel mit Inhalt in gleiche Form kopieren
 
Weiß denn keiner Bescheid?
Ist echt wichtig?

Honie 9. Okt 2003 14:49

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.

Nalincah 9. Okt 2003 14:55

Re: Panel mit Inhalt in gleiche Form kopieren
 
Cool..Wusst ich garnicht..Werd ich gleich mal ausprobieren

neolithos 9. Okt 2003 14:55

Re: Panel mit Inhalt in gleiche Form kopieren
 
Schon mal an eine Panel-Klasse gedacht,

der die Controls dynamisch erzeugt werden?

Nalincah 9. Okt 2003 15:23

Re: Panel mit Inhalt in gleiche Form kopieren
 
Nö...Was heißt das??

neolithos 9. Okt 2003 15:41

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 20:58 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz