Arbeiten mit Checkbox
-
Hallo @all,
ich habe eine Frage zu checkboxen
warum funktioniert meine if-Abrgage nicht?
if (Checkbox1->Checked)
wie müsste die if-Abfrage lauten, wenn die Checkbox ausgewählt wird?
Und wie müsste die if Abfrage lauten, wenn die Checkbox wieder "abgewählt"(deaktiviert) wird?
Vielleicht kann auch jemand schreiben, was man allgemein bei Checkboxen zu beachten hat.
Danke
LG Eliza
-
du mußt das OnClick-Ereignis der CheckBox verwenden, dort kannst du dann ermitteln welchen Status die gerade angeklickte CheckBox hat
-
Hallo Eliza,
versuch mal das hier:if(Checkbox1->Checked==true) { //irgendwas }
oder eben false wenn Du auf "nicht gechecked" prüfen willst.
C-Bär
-
*Eliza schrieb:
warum funktioniert meine if-Abrgage nicht?
if (Checkbox1->Checked)
was genau funktioniert nicht?
Wenn du irgendwann im Programm den Status abfragen willst, funktioniert es genau so.
if( Checkbox1->Checked ) // Häkchen gesetzt if( !Checkbox1->Checked ) // oder einfach 'else' // Häkchen nicht gesetzt
Allerdings kann eine CheckBox auch 'grayed( bool AllowGrayed )' sein, d. h. disabled.
Dann gehts so:if( Checkbox1->State == cbChecked ) // Häkchen gesetzt ... // oder if( Checkbox1->State == cbUnchecked) // Häkchen nicht gesetzt ... // oder if( Checkbox1->State == cbGrayed) // disabled ...
Und wenn du direkt auf eine Änderung des Status reagieren willst, dann nimm Linnea's Lösung mit dem OnClick-Ereignis.
grüssle
-
Hallo,
und bei jedem Klick auf ein Button wechselt Haken gesetzt/Haken nicht gesetzt:
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { CheckBox1->Checked = !CheckBox1->Checked; } //---------------------------------------------------------------------------
Oder innerhalb eines Codeabschnittes anhand eines boolschen Wertes:
bool activ = false; //------------------------------ // später active = true; CheckBox1->Checked = activ;
mfg
kpeter
-
Hallo an alle,
danke für die Anregungen, ich habe meinen Fehler inzwischen beheben können.
Noch eine weitere Frage:
Ich habe 5 CheckboxenWenn alle 5 checkboxen "deaktiviert" sind, soll etwas bestimmtes passieren.
Nicht wenn nur 3 oder 4, und eine oder zwei ist noch checked.
Sondern wirlich wenn alle 5 "unchecked" sind.Ich hoffe ich habe mein Problem einigermaßen verständlich rübergebracht.
Meine eigene Idee dazu: Ein Zähler der immer mitzählt wenn eine Checkbox deaktivitert wird und dann bei Zähler=5 eine bestimmte Aktion ausführt?
Oder gibt es eine einfachere Lösung?
Danke im Voraus für Antworten.LG
Eliza
-
Hallo,
'ne Funktion die bei jedem OnClick aufgerufen wird und die Checkboxen abfragt
bool TForm::Check() { if (!CheckBox1->Checked && !CheckBox2->Checked && !CheckBox3->Checked && //usw. return true; else return false; } void __fastcall TForm::CheckBox1Click(TObject *Sender) { Check(); }
LG, Micha
-
Danke!!
-
Hallo,
kann mri jemand sagen, wie der Befehl lautet, eine Checkbox "unchecked" zu setzten nach dem ein bestimmtes Ereignis eingetreten ist?
LG
Eliza
-
Hallo,
hab es schon selbst rausgefunden, lautet:
Checkbox1->Checked=false;
so einfach war das
Wenn noch jemand interessante Anregungen zu Checkboxen hat nur her damit.
LG
Eliza