In den nächsten zwei Kapiteln werden die beiden Komponenten CheckBox und RadioButton beschrieben. Jede Komponente hat ihre spezifische Funktion:
Abbildung 16.17.1: Drei CheckBoxen und eine Gruppe von drei RadioButton
Komponente CheckBox
Die Komponente CheckBox (gb.qt4) implementiert eine CheckBox, die markiert werden kann oder nicht. Wenn die Tristate-Eigenschaft festgelegt ist, dann wird der CheckBox-Zustand im Sinne von „Zustand unbekannt (nicht definiert)“ oder „soll nicht geändert werden“ interpretiert.
Eigenschaft | Typ | Default | Beschreibung |
---|---|---|---|
Autoresize | Boolean | False | Ermittelt den Wert oder legt fest, ob sich die Größe der CheckBox automatisch an den beschreibenden Text anpasst. |
Text | String | Null | Ermittelt den Text oder legt den Text fest, der auf der CheckBox als Beschriftung angezeigt wird. |
Caption | String | Null | Synonym für Text |
Tristate | Boolean | False | Ermittelt oder legt fest, ob die CheckBox über einen dritten Zustand verfügt. |
Value | Integer | 0 | Ermittelt oder legt fest, welchen Wert die CheckBox hat. |
Tabelle 16.17.1: Eigenschaften CheckBox
Die Eigenschaft CheckBox.Value kann drei Werte annehmen -1, 0 oder 1. Dabei gilt für den Zustand im Zusammenhang mit den definierten CheckBox-Konstanten und der .Tristate-Eigenschaft:
Symbol | Zustand | Wert | Konstante |
---|---|---|---|
☑ | Ausgewählt | -1 | CheckBox.True |
⎕ | Nicht ausgewählt | 0 | CheckBox.False |
⊟ | Unbestimmt | 1 | CheckBox.None ( + CheckBox.Tristate = True) |
Tabelle 16.17.2: Werte der Eigenschaft CheckBox.Value
Das Klick-Ereignis wird ausgelöst, wenn der Benutzer auf die CheckBox klickt und es ändert sich der Zustand der CheckBox. Gilt CheckBox.Tristate = False, dann ändert sich der Zustand alternativ. Sonst gilt die Reihenfolge: ⎕ → ⊟ → ☑ ! Davon können Sie sich selbst schnell überzeugen, wenn Sie für eine CheckBox die Eigenschaft CheckBox.Tristate auf True oder False setzen und diese Ereignisbehandlungsroutine einsetzen:
Public Sub CheckBox1_Click() Select CheckBox1.Value Case -1 Print "CheckBox checked" ' Zustand: ausgewählt Case 0 Print "CheckBox unchecked" ' Zustand: nicht ausgewählt Case CheckBox1.None Print "CheckBox indeterminate" ' Zustand: indifferent End Select End ' CheckBox1_Click()
Das ist schon bemerkenswert: Die gesamten Quelltexte (trunk/) von Gambas zeigen nur im mitgelieferten Beispiel GameOfLife eine Anwendung von CheckBox.Tristate.
Artikel