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()

B1

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()

B2

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()

B3

Abbildung 13.3.1.2.1: Checkbox ist beim Programmstart aktiviert

B4

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.

Download

Artikel

Download