13.2 Menü-Editor
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 | 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)
Den Menü-Editor starten Sie
- über einen Klick auf den Button Menüeditor in der Menüleiste (über dem Formular) ,
- mit der Tastenkombination CTRL + E oder
- nach einem Klick der rechten Maustaste auf das Formular, in dem Sie aus dem sich öffnenden Kontextmenü den Eintrag Menüeditor aktivieren.
Abbildung 13.2.1: (Teil-)Ansicht des Menü-Editors
Beim Anlegen einer Menü-Struktur haben sich folgende Arbeitsschritte bewährt:
- Ein Klick auf die Schaltfläche Einfügen im Menü-Editor erzeugt einen neuen Menüeintrag.
- Tragen Sie in den oberen und unteren Teil des Menüeditors für jeden Menüeintrag die Angaben aus Ihrer Tabelle ein → Abbildung 13.2.1 und → Abbildung 13.2.2.
- Sie können Ihre Eintragungen jederzeit korrigieren (ändern oder löschen).
- Wenn Sie das Textfeld bei Caption frei lassen, wird zur Laufzeit des Programms automatisch im Menü eine Trennlinie zwischen zwei Menüeinträgen erzeugt. Der Name des Menüeintrags erscheint nur im Menü-Editor in der Farbe hellgrau.
- Ändern Sie die Ebene eines Menüeintrags, indem Sie den Menüeintrag markieren und dann mit den beiden Schaltflächen Einrücken und Ausrücken die Ebene erhöhen oder verringern. Die aktuelle Ebene erkennen Sie an den kleinen Punkten vor dem Menüeintrag. Einen Menüeintrag der Ebene Null erkennen Sie im Menüeditor am Schriftstil fett.
- Sie können einen Menüeintrag mit den zwei Schaltflächen 'Nach oben verschieben' und 'Nach unten verschieben' in der Menü-Struktur verschieben. Bitte achten Sie dann darauf, u.U. die Namen der Menüeinträge anzupassen, wenn diese Bezeichnung eine Rang- und Reihenfolge kennzeichnet.
- Ordnen Sie den einzelnen Menüeinträgen ein passendes Icon aus dem Bestand von Gambas zu, wenn Sie der üblichen Praxis bei Menüeinträgen folgen wollen.
- Prüfen Sie alle Eintragungen im Menü-Editor sorgfältig, bevor sie den Menüeditor schließen.
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:
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:
Abbildung 13.2.5: (Teil-)Ansicht3 des Menü-Editors






