Abbildung 13.1.1.1: Baumstruktur in einer Menü-Liste
Das Menü 'Extras' zum Beispiel enthält die drei Menüs: Optionen, Farbpaletten und das (Options-) Menü Vorschau, wobei das Menü Farbpaletten zwei Menüs in der Menüliste enthält,wie Sie der Abbildung 13.1.1.1 entnehmen können:
Bitte beachten Sie, dass die beiden Menüs Extras und Farbpaletten in diesem Beispiel nur die Rolle als Container für weitere Menüs erfüllen, weil diese nach einem Klick nur die weiteren Menüs in der zugeordneten Menüliste anzeigen, jedoch keine Programmaktionen auslösen! Im weiteren werden die Begriffe Menü, Menüleiste, Menüliste und Untermenü so benutzt, wie sie im ersten Teil beschrieben worden sind.
Es gibt 3 erprobte Varianten, wie Sie Menüs in einer selbst definierten Struktur mit Hilfe von Quelltext zur Laufzeit anlegen. Das gelingt schnell und wenig fehleranfällig, wenn Sie sich die Baumstruktur des zukünftigen Menüs bereits vorher vollständig notiert haben.
Hier ein Ansatz, wobei nur eine Menüliste zum Menü 'Extras' aus dem o.a. Projekt (Abbildung 13.1.1.1) beschrieben wird:
... Private mnuMenu2 As Menu Private mnu21Optionen As Menu Private mnu22SelectColor As Menu Private mnu23PreView As Menu Private mnu221Palette1 As Menu Private mnu222Palette2 As Menu ... Private mnuSpace As Menu Public Sub Form_Menu() mnuMenu2 = New Menu(FMain, False) ' 2. Eintrag in der Menü-Leiste , sichtbar mnuMenu2.Caption = "Extras" mnu21Optionen = New Menu(mnuMenu2) As "mnuOptionen" mnu21Optionen.Caption = "Optionen" mnu21Optionen.Picture = Picture["icon:/16/options"] mnu22SelectColor = New Menu(mnuMenu2) As "mnuSelectColor" mnu22SelectColor.Caption = "Farbpaletten" mnu22SelectColor.Picture = Picture["icon:/16/fill"] mnu221Palette1 = New Menu(mnu22SelectColor) As "mnuPalette1" mnu221Palette1.Caption = "Farbtafel 1" mnu221Palette1.Picture = Picture["icon:/16/pen"] mnuSpace = New Menu(mnu22SelectColor) mnuSpace.Caption = "" ' Trennlinie mnu222Palette2 = New Menu(mnu22SelectColor) As "mnuPalette2" mnu222Palette2.Caption = "Farbtafel 2" mnu222Palette2.Picture = Picture["icon:/16/color"] mnu23PreView = New Menu(mnuMenu2) As "mnuPreView" mnu23PreView.Caption = "Vorschau" mnu23PreView.Checked = True mnu23PreView.Toggle = True ... End ' Form_Menu()