Gui Elemente durchlaufen?
-
Hallo ich habe ein kleines Form gebaut was 8 Edits enhält. Ihr Namen sind Edit1...Edit8. Wie kann ich sie nun in einer schleife durchlaufen. Und nicht alle mit Edit1->Text ... Edit8->Text ansprechen. Danke
-
for(int i=0;i<AnzahlEdits;i++) { TEdit *edit =(TEdit*) FindComponent("Edit" +IntToStr(i+1)); if(edit) edit->Text="bla"; }
-
danke funktionert. kannstdu mir ne kleine Erläuterung dazu geben`?
-
Du übergibts der Methode FindComponent den Componentennamen als AnsiString und bekommst TComponent zurück. Das brauchst du dann nur noch in die benötigte Komponente zu casten.
-
und zum Casten sollte man dynamic_cast (wenn Test erforderlich) oder static_cast nehmen, aber keinen C-Cast.
-
Hallo
Und ich weise dazu noch auf die Möglichkeit von Komponentenarrays hin, wa ich für eleganter als FindComponent halte.
bis bald
akari
-
akari schrieb:
Und ich weise dazu noch auf die Möglichkeit von Komponentenarrays hin, wa ich für eleganter als FindComponent halte.
...und viel schneller
-
audacia schrieb:
akari schrieb:
Und ich weise dazu noch auf die Möglichkeit von Komponentenarrays hin, wa ich für eleganter als FindComponent halte.
...und viel schneller
Zumal er sie noch nicht mal dynamisch braucht:
TPanel* ctrl[] = {pnlF0, pnlF1, pnlF2, pnlF3, pnlF4}; for (int i = 0; i < 5; i++) { }