VB -20: Menüs erstellen

À la carte...

Nun soll unser Mathe-Max aber nicht mit einer Zählübung enden, sondern auch verschiedene Rechenübungen anbieten. Da stellt sich uns zunächst die Frage, wie wir den User die entsprechende Übung auswählen lassen?

Wir könnten verschiedene Command-Buttons auf die Form legen, die jeweils eine andere Übung repräsentieren. Bei vielen Übungen könnte das jedoch schnell unübersichtlich werden und es verhindert den Blick auf's Wesentliche. Wir entscheiden uns für ein Menü, wie wir es von den meisten Windows-Programmen kennen.

Das Erstellen einer Menüstruktur in VB geht recht einfach. Unter "Tools > Menü Editor" (Ctrl-E) rufen wir den Menüeditor auf.

Jeder Menüpunkt ist nichts weiter als ein spezielles Control, das u.a. Eigenschaften wie Caption und Name aufweist. Unter Caption geben wir den später sichtbaren Menüeintrag ein. Stellen wir einem Buchstaben ein "&" voran, wird dieser später im Menü unterstrichen dargestellt und dient als Kurztaste (das gilt übrigens auch für die Caption anderer Controls), z.B.:

Hierbei müssen wir nur darauf achten, daß Menüpunkte in der gleichen Hierarchieebene jeweils einen anderen Buchstaben als Kurztaste haben, damit der Zugriff eindeutig ist.

Unter "Name" geben wir einen passenden Namen an, mit dem wir später im Programm arbeiten, hier

Mit den kleinen Pfeilen beeinflußt man die Hierarchie, einmal nach rechts und der Menüpunkt wird zum Untermenü. Grundsätzlich gehört es zum guten Ton, jedem Hauptmenüpunkt wenigstens einen Untermenüpunkt zuzuordnen. Eine Aktion, die direkt bei Klick auf einen Hauptmenüpunkt eintritt, ist zwar möglich, aber nicht windows-üblich.

Wir bauen für unser Programm folgende Menüstruktur auf:

        &Programm
              Be&enden
        &Übung
              &Zählen
              &Addition
                    mit &Symbolen
                    (Trennlinie)
                    bis 10
                    bis 20
                    bis 100
              &Subtraktion
                    bis 10
                    bis 20
                    bis 100
              &Multiplikation
                    &kleines Einmaleins
                    &großes Einmaleins
              &Division
                    bis 100
                    bis 500
         &Hilfe
              &Über...  Ctrl-F1
 

Zusätzlich kann man einem Menüpunkt auch noch einen Hotkey zuweisen, wie hier beim Menü "Über" demonstriert. Man wählt dazu einfach eine passende Taste(nkombination) in der "Shortcut"-Liste aus.

Eine Trennlinie (hier zwischen "Addition mit Symbolen" und den weiteren Additionen) erhöht die Übersichtlichkeit und wird einfach erzeugt, indem man unter Caption ein "-" eingibt (auch die Trennlinie muß jedoch einen Namen haben!).

Auch bei Menüs kann man mit Control-Arrays arbeiten, das ist vor allem dann praktisch, wenn ähnliche Operationen beim Anklicken eines Menüpunkts ausgeführt werden sollen, wie hier bei den verschiedenen Stufen der Addition, Subtraktion, Multiplikation und Division. Menü-Control-Arrays müssen sich im gleichen Untermenü befinden und aufeinander folgen. Sie haben den gleichen Namen und unterscheiden sich nur durch die Index-Eigenschaft.

Zusätzlich können wir hier auch bestimmen, ob ein Menüpunkt markiert (checked) sein soll, ob er angeklickt werden darf (enabled) und ob er überhaupt von Anfang an sichtbar sein soll (visible). Die weiteren EIgenschaften können wir hier erstmal außer Acht lassen. Alle Eigenschaften kann man natürlich auch später zur Laufzeit ändern.

Nach dem Klick auf "OK" können wir sofort unser Menü in der Design-Umgebung kontrollieren.

Ein Klick auf einen Menüpunkt bringt uns sofort in das entsprechende Click-Ereignis im Codefenster, wo wir dann definieren können, was beim Anwählen eines Menüpunktes geschehen soll, z.B.

     Private Sub mnuEnde_Click()
        End
     End Sub
     

Womit unser Programm dann endlich einen "ordentlichen" Ausgang bekommt.

Beispielprojekt laden

zurück Index weiter


© Copyright 1998-2000 J.Behling EMail schreiben ABC-Ware's Homepage
Weitergabe und Druck (auch in Teilen, mit Ausnahme von Privatgebrauch) ohne ausdrückliche Genehmigung der Autorin untersagt.