Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Dynamisch erzeugte Komponente in der VCL sichtbar machen


HenryHux - Do 14.04.11 19:32
Titel: Dynamisch erzeugte Komponente in der VCL sichtbar machen
Hi,

immoment bin ich mit vielen Komponenten am basteln.
Da ich mit sehr vielen arbeite, kommt es mir recht ein paar von denen in Arrays dynamisch zu erstellen, da viele Aktionen einfach die Selber sind.
Doch leider ist es so sehr schwer das Design zu planen..
Habt ihr evtl. ein paar Tipps, wie ich das machen könnte?

Lg


HelgeLange - Do 14.04.11 21:09

Meinst du zur Laufzeit dynamisch erzeugte Komponenten auf der Form anzeigen ? Oder Komponenten in die IDE integrieren ?


HenryHux - Do 14.04.11 21:24

Ich meine dynamisch erzeugte TImages schon vor der Erzeugung auf dem RAD anzeigen lassen.
Kann mir aber nicht vorstellen, dass das klappt, bin jetzt mit Panels am arbeiten.

lg


jaenicke - Fr 15.04.11 05:09

Mir ist nicht so ganz klar wie du das eigentlich machst. TImages? :gruebel:

Wenn ich viele Komponenten dynamisch erstellen muss, designe ich das meistens auf einem neuen Formular und lasse mir das automatisch in Code umwandeln (das geht mit den CnWizards oder GExperts). Das geht am schnellsten und einfachsten.


HenryHux - Fr 15.04.11 06:21

Ich habe das Problem jetzt zwar anders gelöst, aber trotzdem interessiert mich die ursprüngliche Frage noch...
Ich habe in einem Programm folgenden Code :

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Var Images : array [1..81..7of TImage;
...
  for i := low(Images) to high(Images) do
    for j := low(Images[i]) to high(Images[i]) do
    begin
      Images[i, j] := Timage.Create(FrontForm);
      Images[i, j].parent := parent;
...

Klappt alles, mein Problem ist jetzt die Positionierung.
Anstatt alles per Hand einzugeben, würde ich natürlich am liebsten diese Bilder mit Drag n' Drop verschieben.
Doch wenn ich mir ein paar TImages auf die Form klatsche, kann ich die ja nicht mehr wie Arrays ansprechen, oder doch?

Lg


jaenicke - Fr 15.04.11 07:56

user profile iconHenryHux hat folgendes geschrieben Zum zitierten Posting springen:
Doch wenn ich mir ein paar TImages auf die Form klatsche, kann ich die ja nicht mehr wie Arrays ansprechen, oder doch?
Nur, wenn du die vorher in ein Array reinpackst. Aber das sollte mit FindComponent in FormCreate ja kein Problem sein.

Das sieht aber doch eher aus als ob die Positionen berechenbar sind, oder? Da wäre es dynamisch erstellt vielleicht sogar sinnvoller.