Delphi-PRAXiS

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 Sichtbare Komponenten dynamisch erzeugen ? (https://www.delphipraxis.net/47872-sichtbare-komponenten-dynamisch-erzeugen.html)

mhuck 17. Jun 2005 08:14


Sichtbare Komponenten dynamisch erzeugen ?
 
Hallo,

ich bin neu hier, programmiere hauptsächlich zum Spaß (Elektronik / Zusatzprogramme für Flugsimulation) und manchmal etwas für den Beruf (medizinische Physik).

Als ich jetzt zum ersten mal eine komplexere grafische Darstellung programmieren wollte, habe ich gemerkt, das ich mit dem Delphi-Editor für Formulare nicht weiterkomme; wenn ich z.B. sehr viele Panels anzeigen möchte, die dann hinterher alle Panel1, Panel2, Panel3 usw. heißen, wird es sehr unhandlich, hinterher auf die Eigenschaften dieser Panels zuzugreifen.
Was ich möchte, ist ein Array oder eine Liste dieser Komponenten.
Bestimmt ist das gar keine große Sache, aber mit objektorientierter Programmierung habe ich noch so meine Probleme...

Luckie 17. Jun 2005 08:38

Re: Sichtbare Komponenten dynamisch erzeugen ?
 
Mach dir doch ein
Delphi-Quellcode:
array of TPanel
.

r2c2 17. Jun 2005 08:52

Re: Sichtbare Komponenten dynamisch erzeugen ?
 
Ne andere Möglichkeit zur Organisation wäre ne Delphi-Referenz durchsuchenObjectList. Wichtig is da die Property Delphi-Referenz durchsuchenOwnsobject, oder so ähnlich(hab damit (noch) nicht gearbeitet). Da Panels Komponenten sind, muss IMHO OwnsObject False sein und die Parent-property der Panels sollte dann Form1(oder was auch immer das Parent sein soll).

mfg

Christian

mhuck 17. Jun 2005 10:29

Re: Sichtbare Komponenten dynamisch erzeugen ?
 
So einfach geht das, mit einem Array?
Also: MyPanels :Array[1..50] of TPanel; ?
Na, das versuch ich gleich mal !
Danke,

mhuck 17. Jun 2005 10:51

Re: Sichtbare Komponenten dynamisch erzeugen ?
 
So, das krieg' ich schon nicht hin.

Delphi-Quellcode:
var Kaertchen : Array[1..100] of TPanel;
        ...
        Kaertchen[1].Create(Form1);
Das führt zu einem Ausnahmefehler; ich denke, da habe ich das Prinzip noch nicht ganz verstanden ...

runger 17. Jun 2005 11:02

Re: Sichtbare Komponenten dynamisch erzeugen ?
 
Hallo,

die müssen alle noch einen parent haben. Die wissen doch garnicht wo sie hingehören.
mypanel.parent:=self;

Rainer

JasonDX 17. Jun 2005 11:03

Re: Sichtbare Komponenten dynamisch erzeugen ?
 
Zitat:

Zitat von mhuck
Delphi-Quellcode:
var Kaertchen : Array[1..100] of TPanel;
        ...
        Kaertchen[1].Create(Form1);

Du musst den Konstruktor von der Klasse aufrufen, also nicht von der Instanz
also:
Delphi-Quellcode:
Kartchen[1] := TPanel.Create(Form1);

mhuck 17. Jun 2005 11:18

Re: Sichtbare Komponenten dynamisch erzeugen ?
 
Jetzt hoffentlich das letzte Problem: Ich sehe das Ding nicht!
Muß ich da irgendeine Methode aufrufen oder eine Eigenschaft setzen ?
Bisher habe ich top,left, height,width,color,visible und enabled gesetzt.

Nothine 17. Jun 2005 11:30

Re: Sichtbare Komponenten dynamisch erzeugen ?
 
Zitat:

Zitat von mhuck
Bisher habe ich top,left, height,width,color,visible und enabled gesetzt.

du musst noch Parent setzen, weil das Panel erst dann weiß wo es sich hinzeichnen soll.

mhuck 17. Jun 2005 13:02

Re: Sichtbare Komponenten dynamisch erzeugen ?
 
Jaahh !
Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr.

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