User Tools

Site Tools


k13:k13.3:k13.3.1:start

13.3.1 Option menu

An option menu is a menu with a text and a CheckBox whose value can be toggled between the two states ☑ (activated) and ☐ (deactivated). To implement a menu with this property, you must use the Checked property of a menu. You can set this property in the menu editor or in the source code. The Checked property of a menu corresponds to the Toggle property.

The property Menu.Checked is a synonym for Menu.value and indicates whether the checkmark ☑ is displayed in front of the menu text or not. However, it does not control in any way the behaviour of the option menu! If Menu.Toggle is set, Menu.Checked is inverted automatically when the option menu is clicked.

13.3.1.1 Example 1

In a program that loads and displays images, you want to allow the user to edit the image, among other things. For example, you can create a (sub)menu item mnu21AllowedEdit with the label “Image Editing” in a menu mnuMenu2 with the label “Extras”:

Public Sub CreateAndShowMenus()'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  mnuMenu2 = New Menu(FMain, False) ' Menu bar is displayed
  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

Figure 13.3.1.1.1.1: Checkbox de-activated - Image editing not allowed (default setting)

[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()
  • If the menu item “Image editing” is clicked, then mnu21AllowedEdit.Checked is automatically switched to “activated” ☑ (→ Figure 13.3.1.1.1.2) because the toggle property is set to True.
  • The current value of mnu21AllowedEdit.Checked in row 4 activates the image editor as a menu action in the mnu12Edit menu.

B2

Figure 13.3.1.1.1.2: Checkbox activated - image editing allowed

13.3.1.2 Example 2

Example 2 refers to the editor 'Notepad' from the example collection of gambas. In the editor, you can switch the line break in the TextArea text display component on and off. The mnuWrap.Checked = False and mnuWrap.Toggle properties are not set in the menu editor. Therefore, you must switch the checkbox states as in line 3:

[1] Public Sub mnuWrap_Click()
[2] 
[3]   mnuWrap.Checked = Not mnuWrap.Checked
[4]   txtNotePad.Wrap = mnuWrap.Checked
[5] 
[6] End ' mnuWrap_Click()

B3

Figure 13.3.1.2.1: Checkbox is activated at program startup

B4

Figure 13.3.1.2.2: Checkbox de-activated - line break can be activated

The display of an icon in the menu item 'Line break' on the one hand and the display of an activated checkbox ☑ only succeed if you use either the QT/QTK+ alternate component (gb.gui) or the GTK+ component as Graphical User Interface. The use of the QT4 component causes an error when displaying the provided icon.

Download

Articles

Download


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

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

The website uses a temporary session cookie. This technically necessary cookie is deleted when the browser is closed. You can find information on cookies in our privacy policy.
k13/k13.3/k13.3.1/start.txt · Last modified: 02.07.2018 (external edit)

Page Tools