Komponenten auf bestimmtem Elternelement erstellen - Wie?
-
Hallo Zusammen,
ich möchte während der Laufzeit eine CheckBox erstellen. Wie ich das mache, weiß ich. Ich möchte diese CheckBox aber auf einem Panel erstellen. Ich habe also ein Form und auf dem ist ein Panel.Wie sage ich der CheckBox jetzt, dass das Panel das "Elternelement" ist?
Danke im voraus.
-
Hallo,
CheckBox->Parent = Panel; // :confused:
LG, Micha
-
Das ist übrigens auch in dem FAQ-Beitrag zu sehen, auf den akari und Braunstein schon bei deiner letzten Frage verwiesen haben!
-
Stimmt. Sorry... Dabei habe ich schon eine Brille auf...
-
Hallo nochmals. Ich hätte nochmal eine Frage dazu. Kann ich das Parent Ziel variabel gestallten? Momentan habe ich es so:
CheckBox->Parent = bestellung->Panel;
Gibt es jetzt eine Möglichkeit es z.B. so zu machen
String ziel = "bestellung->Panel"; CheckBox->Parent = ziel;
-
So einfach geht das leider nicht.
Du kannst dir aber z.B. mit FindComponent einen Zeiger auf die gewünschte Zielkomponente besorgen.
Oder du iterierst durch das Components-Array der Form.
Das wird auch in einigen der Einträge im FAQ-Abschnitt "Komponenten" behandelt.
-
Hallo Jansen,
danke für deinen Tipp. Ich habe mich da nicht genau genug ausgedrückt.Ich habe z.B. folgende Funktion
void Artikel(AnsiString gruppe); { TCheckBox *CheckBox_DVDBoxen = new TCheckBox(neue_bestellung); CheckBox_DVDBoxen->Name = "CBhs1; CheckBox_DVDBoxen->Parent = neue_bestellung->Tdvdbox; }
Im Hauptprogramm habe ich folgendes stehen
Artikel("Tdvdbox");
Ich möchte jetzt, an der Stelle
CheckBox_DVDBoxen->Parent = neue_bestellung->Tdvdbox;
das "Tdvdbox" mit der Variablen gruppe austauschen. Die Komponenten gibt es ja. Da brauche ich ja nicht mit FindComponent suchen. Oder doch?Hoffe, ich habe das jetzt plausiebel erklärt. Oder liege ich da jetzt komplett falsch?
-
Hallo
Vermutlich ist das deine gesuchte Lösung :
void Artikel(AnsiString gruppe, TWinControl* parent); // Funktionskopf ändern { TCheckBox *CheckBox_DVDBoxen = new TCheckBox(neue_bestellung); CheckBox_DVDBoxen->Name = "CBhs1"; CheckBox_DVDBoxen->Parent = parent; } ... TWinControl* x = neue_bestellung->Tdvdbox; // Oder irgendetwas anderes Artikel("Tdvdbox", x);
bis bald
akari
-
Danke akari. Damit hat es wunderbar geklappt.