Mehrere Checkboxen auf einmal auswählen
-
Hallo,
ich möchte bei einem Click auf einen Button alle sich in einer Group Box befindlichen Checkboxen auf einmal anwählen.
Nach einem Beispiel hier im Forum habe ich das folgendermaßen versucht:void __fastcall TForm1::Button1Click(TObject *Sender) { for (int i=0; i< GroupBox1->ComponentCount; i++) { dynamic_cast<TCheckBox*>(GroupBox1->Components[i])->SetChecked(TRUE); } }Bekomme dann aber folgende Fehlermeldung:
E2247 Zugriff auf '_fastcall TCustomCheckBox::SetChecked(bool)' nicht möglich
Scheint mir die Typumwandlung nicht zu stimmen, aber was wäre denn da richtig?
Besten Dank im Voraus,
Thomas
-
void __fastcall TForm1::Button1Click(TObject *Sender) { for (int i=0; i< Form1->ComponentCount ; i++) { if(Form1->Components[i]->ClassNameIs("TCheckBox")) { dynamic_cast<TCheckBox*>(Form1->Components[i])->Checked=true; } } }
-
Was passiert eigentlich, wenn in der GroupBox auch z.B. ein Label rumliegt?
Ich würde ja nach der Typumwandlung ne if-Abfrage einbauen, um festzustellen, ob es geklappt hat...
-
Hi,
HEZ schrieb:
Was passiert eigentlich, wenn in der GroupBox auch z.B. ein Label rumliegt?
Ich würde ja nach der Typumwandlung ne if-Abfrage einbauen, um festzustellen, ob es geklappt hat...Bei der if-Abfrage wird doch kontrolliert, ob es sich um eine CheckBox handelt und wenn das zutrifft, erst dann wird der dynamic-cast durchgeführt! So kann es doch gar nicht passieren, dass versucht wird ein Label zu casten!!!!
Gruß
-
Ach Dreck. Hast Recht. Klar, dann gehts auch.

-
Danke stevie.
Ich hatte mir das nur so überlegt, wenn ich zwei Group Boxen mit mehreren CheckBoxen habe und einmal alle in der einen Group und einmal alle in der anderen aktivieren möchte.
Da sich in einer Group ausschließlich Checkboxen befinden wollte ich mir so die if-Abfrage sparen.Thomas