Die einfachste Art Ihr Programm mit einem Menü (→ Abbildung 13.2.4) auszurüsten besteht darin, den Menü-Editor einzusetzen. Es ist ein guter Plan, wenn Sie sich – vor allem bei einer komplexen Menü-Struktur – diese Struktur aufzeichnen und sie dann in einer Tabelle abbilden:

Name Ebene Group Caption Action Tag Shortcut V E T C
mnu1Menu 0 Bild-Datei CTRL+W + +
mnu11Open 1 Öffnen… OpenImage CTRL+O + +
mnu12New 1 Neu CTRL+N + +
mnu13Space 1 + +
mnu14Print 1 Drucken CTRL+P +
mnu15Close 1 Beenden FormClose CTRL+Q + +
mnu2Menu 0 Extras + +
mnu21Optionen 1 Optionen + +
mnu22SelectColor 1 Farbpaletten + +
mnu221Palette1 2 Farbtafel 1 + +
mnu222Space 2 + +
mnu223Palette2 2 Farbtafel 2 + +
mnu23PreView 1 Vorschau + +
mnu3Menu 0 Hilfe + +
mnu31Help 1 Hilfe HelpMe F1 + +
mnu32Web 1 Online-Hilfe + +

Tabelle 13.2.1: Menü-Struktur (V=Visible, E=Enabled, T=Toogle und C=Checked)

Menüeditor-Icon

Den Menü-Editor starten Sie

Menüeditor 1

Abbildung 13.2.1: (Teil-)Ansicht des Menü-Editors

Beim Anlegen einer Menü-Struktur haben sich folgende Arbeitsschritte bewährt:

Menüeditor2

Abbildung 13.2.2: (Teil-)Ansicht2 des Menü-Editors

Quittieren Sie alle Eintragungen oder Änderungen im Menü-Editor mit OK. Wenn Sie den Menü-Editor schließen, obgleich Sie Änderungen vorgenommen haben, dann wird nachgefragt, ob die Änderungen gespeichert werden sollen:

Nachfrage

Abbildung 13.2.3: Speichern – Nachfrage

Eintragungen im Menü-Editor bei Action werden nur dann notwendig, wenn Sie zum Beispiel zur Synchronisation zwischen dem Menü und einer eingefügten Symbolleiste die Klasse Action einsetzen wollen. Im Kapitel '13.5 Menü und Symbolleiste (Toolbar) ' erfahren Sie, wie man diese Synchronisation realisiert.

Anschließend müssen Sie zu den einzelnen Menüeinträgen den Programm-Quelltext eingeben, der beim Anklicken eines Menüpunkts ausgeführt werden soll.

Abbildung 13.2.4: Auswahl Menüeintrag 'Beenden'

Klicken Sie dazu im Menü im Formular auf den Eintrag, dem Sie Code als Ereignisbehandlungsprozedur hinzufügen wollen; zum Beispiel für das mnu15Close_Click()-Ereignis:

Public Sub mnu15Close_Click()
  FHelp.Close
  FMain.Close
End ' mnu15Close_Click()

Weitere Prozeduren (Auswahl):

Public Sub mnu11Open_Click()
  ImageOpen()
  mnu14Print.Enabled = True
End ' mnu11Open_Click()
 
Public Sub mnu15Close_Click()
  FHelp.Close
  FMain.Close
End ' mnu15Close_Click()
 
Public Sub mnu23PreView_Click()
  If mnu23PreView.Checked = True Then
     Message.Info("Vorschau anzeigen oder" & gb.NewLine & "Vorschaubild generieren oder...")
  Endif ' Checked = True
End ' mnu23PreView_Click()
 
Public Sub mnu31Help_Click()
  FHelp.Show
End ' mnu31Help_Click()
 
Public Sub mnu32Web_Click()
  Desktop.Open("http://www.gambas-buch.de/dw/doku.php?id=k13:start")
End ' mnu32Web_Click()

Beachten Sie, dass Sie nicht allen Menüeinträgen auch Prozeduren zuordnen können. Das trifft zum Beispiel auf alle Einträge der Ebene 0 zu sowie auf Einträge, die weitere Einträge als (Unter-)Menüs wie bei mnu22SelectColor enthalten.

Ob Sie Eintragungen im Textfeld Tag (Datentyp Variant) vornehmen hängt davon ab, ob Sie diese Eintragung später im Programm auch auswerten und in Abhängigkeit vom Auswertungsergebnis reagieren.

Im Beispiel FNotepad 3.0.0 in den Gambas-Beispielen wird demonstriert, dass Sie zur Laufzeit des Programms die Auswahl eines Menüs auch über ALT+unterstrichener_Buchstabe vornehmen können, wenn Sie beim Eintrag 'Caption' dem ausgewählten Buchstaben ein &-Zeichen voranstellen. Die Kombination ALT+a zum Beispiel ruft den Speichern-Dialog auf:

Menue_2

Abbildung 13.2.5: (Teil-)Ansicht3 des Menü-Editors

Download

Artikel

Download