Inhaltsverzeichnis
13.3.1 Optionsmenü
Ein Optionsmenü ist ein Menü mit einem Text und einer CheckBox, deren Wert zwischen den zwei zwei Zuständen ☑ (aktiviert) und ☐ (de-aktiviert) umgeschaltet werden kann. Um ein Menü mit dieser Eigenschaft zu realisieren, müssen Sie die Checked-Eigenschaft eines Menüs benutzen. Sie können diese Eigenschaft im Menüeditor oder im Quelltext setzen. Die Checked-Eigenschaft eines Menüs korrespondiert mit der Toggle-Eigenschaft.
Die Eigenschaft Menu.Checked ist ein Synonym für Menu.Value und zeigt an, ob das Häkchen ☑ vor dem Menü-Text angezeigt wird oder nicht ☐. Sie kontrolliert jedoch in keiner Weise das Verhalten des Optionsmenüs! Ist Menu.Toggle gesetzt, dann wird Menu.Checked automatisch invertiert, wenn das Optionsmenü angeklickt wird.
13.3.1.1 Beispiel 1
In einem Programm, das Bilder lädt und anzeigt wollen Sie dem Benutzer u.a. die Möglichkeit geben, das Bild zu editieren. Dazu erzeugen Sie zum Beispiel einen (Unter-)Menüpunkt mnu21AllowedEdit mit der Beschriftung „Bild-Bearbeitung“ in einem Menü mnuMenu2 mit der Beschriftung „Extras“:
Public Sub CreateAndShowMenus() … '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mnuMenu2 = New Menu(FMain, False) ' Menü-Leiste wird angezeigt mnuMenu2.Caption = "Extras" mnu21AllowedEdit = New Menu(mnuMenu2) As "mnuAllowedEdit" mnu21AllowedEdit.Caption = "Bild-Bearbeitung" mnu21AllowedEdit.Visible = True mnu21AllowedEdit.Toggle = True mnu21AllowedEdit.Checked = False '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … End ' CreateAndShowMenus()
Abbildung 13.3.1.1.1: Checkbox de-aktiviert – Bildbearbeitung nicht erlaubt (Starteinstellung)
[1] Public Sub mnuAllowedEdit_Click() [2] [3] If bOpenImage = True Then [4] MM.mnu12Edit.Enabled = mnu21AllowedEdit.Checked [5] Endif ' bOpenImage = True ? [6] [7] End ' mnuAllowedEdit_Click()
- Wird der Menüeintrag „Bild-Bearbeitung“ angeklickt, dann wird mnu21AllowedEdit.Checked automatisch auf „aktiviert“ ☑ umgeschaltet (→ Abbildung 13.3.1.1.2), weil die Toggle-Eigenschaft auf True gesetzt ist.
- Der aktuelle Wert von mnu21AllowedEdit.Checked in der Zeile 4 schaltet als Menü-Aktion den Bildeditor im Menü mnu12Edit frei.
Abbildung 13.3.1.1.2: Checkbox aktiviert – Bildbearbeitung zugelassen
13.3.1.2 Beispiel 2
Das Beispiel 2 bezieht sich auf den Editor 'Notepad' aus der Beispielsammlung von Gambas. Im Editor können Sie den Zeilenumbruch in der Text anzeigenden Komponente TextArea ein- und ausschalten. Im Menüeditor ist die Eigenschaft mnuWrap.Checked=False und mnuWrap.Toggle nicht gesetzt. Deshalb müssen Sie die Umschaltung der Checkbox-Zustände wie in der Zeile 3 selbst vornehmen:
[1] Public Sub mnuWrap_Click() [2] [3] mnuWrap.Checked = Not mnuWrap.Checked [4] txtNotePad.Wrap = mnuWrap.Checked [5] [6] End ' mnuWrap_Click()
Abbildung 13.3.1.2.1: Checkbox ist beim Programmstart aktiviert
Abbildung 13.3.1.2.2: Checkbox de-aktiviert – Zeilenumbruch kann aktiviert werden

Die Anzeige eines Icon im Menü-Eintrag 'Zeilenumbruch' einerseits und die Anzeige einer aktivierten Checkbox ☑ gelingen nur dann, wenn Sie als Graphical User Interface entweder die QT/QTK+ Wechselkomponente (gb.gui) oder die GTK+ Komponente einsetzen. Der Einsatz der QT4-Komponente erzeugt einen Fehler bei der Anzeige des vorgesehenen Icons.




