DEFINE MENU-Befehl

Erstellt eine Menüleiste.

DEFINE MENU MenuBarName [BAR [AT LINE nRow]]
   [IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [, nFontSize]]
   [STYLE cFontStyle] [KEY KeyLabel] [MARK cMarkCharacter]
   [MESSAGE cMessageText] [NOMARGIN] 
   [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]

Parameter

  • MenuBarName
    Gibt den Namen der zu erstellenden Menüleiste an. Über den Menüleistennamen können Sie auf die Menüleiste in anderen Befehlen und Funktionen verweisen.

  • BAR [AT LINE nRow]
    Erstellt eine Menüleiste, deren Funktionsweise der der Visual FoxPro-Systemmenüleiste entspricht. Sie hat folgende Merkmale:

    • Eine horizontale Menüleiste mit einer Höhe von einer Zeile wird über die ganze Breite des Visual FoxPro-Hauptfensters oder des benutzerdefinierten Fensters angezeigt, in dem Sie die Menüleiste platzieren.
    • Die Position der Menütitel auf der Menüleiste wird automatisch festgelegt.
    • Passen die Menütitel aufgrund ihrer Anzahl oder Breite nicht auf den Bildschirm oder in das Fenster, wird die Menüleiste bei Bedarf vertikal bewegt.

    nRow gibt die Zeilenanzahl an.

  • IN [WINDOW] WindowName
    Platziert eine Menüleiste in einem benutzerdefinierten Fenster. Geben Sie den Namen des Fensters, in dem Sie die Menüleiste platzieren möchten, mit WindowName an. Wenn Sie IN WINDOW nicht angeben, wird die Menüleiste, sofern nicht ein benutzerdefiniertes Fenster aktiv ist, standardmäßig im Visual FoxPro-Hauptfenster platziert. Ist ein benutzerdefiniertes Fenster aktiv, wird sie im aktiven Fenster platziert. Diese Klausel wird nur in Formularen der obersten Ebene unterstützt. Ein Formular der obersten Ebene wird mit ShowWindow=2 oder Desktop=.T. festgelegt.

  • IN SCREEN
    Platziert die Menüleiste explizit im Visual FoxPro-Hauptfenster.

  • FONT cFontName [, nFontSize]
    Gibt eine Standardschriftart für die Titel aller Menüs der Menüleiste an. Diese Schriftart kann für einen einzelnen Menütitel außer Kraft gesetzt werden, indem Sie in DEFINE PAD eine FONT-Klausel angeben.

    cFontName gibt den Namen der Schriftart und nFontSize die Größe in Punkt (pt) an. Mit dem folgenden Befehl wird z. B. eine Menüleiste mit Menütitel in der Schriftart "Courier" und einem Schriftgrad von 12 pt erstellt:

    DEFINE MENU mnuExample FONT 'Courier', 12
    

    Ist die angegebene Schriftart nicht verfügbar, wird eine Schrift mit ähnlichen Schriftmerkmalen verwendet. Wurde die FONT-Klausel einbezogen, aber nicht mit nFontSize die Punktgröße festgelegt, wird eine 10-pt-Schrift verwendet.

    Die FONT-Klausel wird bei Menütiteln ignoriert, die zum Visual FoxPro-Systemmenü _MSYSMENU hinzugefügt werden. Beachten Sie bitte, dass der Menü-Designer mit dem Visual FoxPro-Systemmenü arbeitet.

  • STYLE cFontStyle
    Gibt einen Standardschriftstil für die Titel aller Menüs der Menüleiste an. Dieser kann für einzelne Menütitel außer Kraft gesetzt werden, indem Sie in DEFINE PAD eine STYLE-Klausel angeben.

    Wird die STYLE-Klausel nicht angegeben oder ist der angegebene Schriftstil nicht verfügbar, wird der Schriftstil "Normal" verwendet.

    Mit cFontStyle können Sie die folgenden Schriftstile angeben:

    Zeichen Schriftstil
    B Fett
    I Kursiv
    N Normal
    Q Undurchsichtig
    - Durchgestrichen
    T Transparent
    U Unterstrichen

    Sie können durch Einbeziehung mehrerer Zeichen Schriftstile kombinieren. Mit dem folgenden Befehl geben Sie z. B. "Fett Kursiv" an:

    DEFINE MENU mnuExample STYLE 'BI'
    

    Die STYLE-Klausel wird bei Menütiteln ignoriert, die zum Visual FoxPro-Systemmenü _MSYSMENU hinzugefügt werden. Der Menü-Designer arbeitet mit dem Visual FoxPro-Systemmenü.

  • KEY KeyLabel
    Gibt die Taste oder Tastenkombination an, mit der die Menüleiste aktiviert wird. Informationen zu einer Liste mit den verfügbaren Tasten, Tastenkombinationen und den Tastennamen finden Sie unter ON KEY LABEL-Befehl.

    Das Einbeziehen der KEY-Klausel entspricht dem folgenden Befehl:

    ON KEY LABEL KeyLabel ACTIVATE MENU MenuName
    

    Anmerkung   Ist bereits ein Tastaturmakro mit demselben Tastennamen definiert, hat das Makro Vorrang, so dass Sie die Menüleiste nicht mit der angegebenen Taste oder Tastenkombination wählen können.

  • MARK cMarkCharacter
    Gibt ein Markierungszeichen an, das links neben dem Menütitel auf der Menüleiste angezeigt wird. Geben Sie MARK an, um das Standardmarkierungszeichen durch das mit cMarkCharacter angegebene Zeichen zu ersetzen. Enthält cMarkCharacter mehr als ein Zeichen, wird nur das erste angegebene Zeichen als Markierungszeichen verwendet.

    Das Standardmarkierungszeichen ist ein Häkchen. Die MARK-Klausel wird ignoriert und das Standardmarkierungszeichen verwendet, wenn die Menüleiste das Visual FoxPro-Systemmenü ist. Sie wird ebenfalls ignoriert, wenn "FoxFont" nicht die Schriftart des Visual FoxPro-Hauptfensters oder des benutzerdefinierten Fensters ist, in dem die Menüleiste angeordnet wird.

    Anmerkung   Durch Angabe eines Markierungszeichens werden die Menünamen auf der Menüleiste noch nicht markiert. Verwenden Sie deshalb zur Markierung mit dem angegebenen Zeichen SET MARK OF.

    In DEFINE PAD angegebene Markierungszeichen setzen Zeichen, die mit der MARK-Klausel von DEFINE MENU angegeben wurden, außer Kraft. Mit SET MARK OF werden Markierungszeichen ein- und ausgeblendet. Dieser Befehl kann auch verwendet werden, um ein Markierungszeichen für einen einzelnen Menüeintrag oder für alle Menüeinträge anzugeben.

  • MESSAGE cMessageText
    Zeigt eine Meldung an, wenn der Benutzer einen Menütitel auswählt. Diese Meldung wird in der grafischen Statusleiste angezeigt. Wurde die grafische Statusleiste mit SET STATUS BAR OFF ausgeblendet, wird die Meldung zentriert in der letzten Zeile des Visual FoxPro-Hauptfensters angezeigt.

  • NOMARGIN
    Entfernt alle Leerzeichen, die standardmäßig links und rechts neben den Menütiteln eingefügt werden.

  • COLOR SCHEME nSchemeNumber
    Gibt die Farben einer einzelnen Menüleiste an.

  • COLOR ColorPairList
    Gibt die Farben einer einzelnen Menüleiste an. Standardmäßig sind die Farben von Menüeinträgen durch das Farbschema 2 des aktuellen Farbsatzes bestimmt.

    Weitere Informationen zu Farbschemas und Farbpaaren finden Sie unter Farben - Überblick.

Hinweise

Mit DEFINE MENU erstellen Sie die Menüleiste für das Menüsystem Ihrer Anwendungen bzw. mit DEFINE PAD die einzelnen Menütitel (Pads) auf der Menüleiste. Verwenden Sie ON PAD ... ACTIVATE, um festzulegen, welches Menü unter welchem Menütitel angezeigt werden soll. Verwenden Sie DEFINE POPUP, um die Menüs zu erstellen, die unter den Menütiteln angezeigt werden sollen. Das gesamte Menüsystem wird mit ACTIVATE MENU aktiviert.

Wenn Sie das Menü mit dem Menü-Designer erstellen, müssen Sie diese Befehle möglicherweise nicht verwenden, da der Menü-Designer automatisch die Befehle für Ihr Menü erstellt. Der Menü-Designer verwendet das Visual FoxPro-Systemmenü, zu dem Sie dann Ihre eigenen Menüeinträge hinzufügen können.

Weitere Informationen zum Erstellen von Menüs finden Sie unter Erstellung eines Menüsystems.

Beispiel

Im folgenden Beispiel wird DEFINE MENU zum Erstellen eines benutzerdefinierten Menüsystems verwendet. Die aktuelle Systemmenüleiste wird zuerst mit SET SYSMENU SAVE gespeichert, anschließend werden die Systemmenütitel mit SET SYSMENU TO entfernt.

Mit DEFINE MENU wird eine neue Menüleiste angelegt, mit DEFINE PAD zwei neue Menütitel erzeugt und mit DEFINE POPUP für jeden Menünamen ein Menü erstellt. Mit DEFINE BAR werden Menüelemente innerhalb der Menüs erzeugt. Wird ein Menütitel gewählt, wird mit der ACTIVATE POPUP-Klausel von ON PAD das entsprechende Menü aktiviert. ACTIVATE MENU zeigt die Menüleiste an und aktiviert diese.

Wird aus einem Menü ein Element gewählt, wird die Prozedur CHOICE ausgeführt. Diese zeigt den Namen des gewählten Elements und den Namen des Menüs an, dessen Bestandteil das Element ist.

** Name this program DEFIMENU.PRG ** CLEAR SET SYSMENU SAVE SET SYSMENU TO ON KEY LABEL ESC KEYBOARD CHR(13) DEFINE MENU example BAR AT LINE 1 DEFINE PAD convpad OF example PROMPT '<Conversions' COLOR SCHEME 3 ; KEY ALT+C, '' DEFINE PAD cardpad OF example PROMPT 'Card <Info' COLOR SCHEME 3 ; KEY ALT+I, '' ON PAD convpad OF example ACTIVATE POPUP conversion ON PAD cardpad OF example ACTIVATE POPUP cardinfo DEFINE POPUP conversion MARGIN RELATIVE COLOR SCHEME 4 DEFINE BAR 1 OF conversion PROMPT 'Ar<ea' ; KEY CTRL+E, '^E' DEFINE BAR 2 OF conversion PROMPT '<Length' ; KEY CTRL+L, '^L' DEFINE BAR 3 OF conversion PROMPT 'Ma<ss' ; KEY CTRL+S, '^S' DEFINE BAR 4 OF conversion PROMPT 'Spee<d' ; KEY CTRL+D, '^D' DEFINE BAR 5 OF conversion PROMPT '<Temperature' ; KEY CTRL+T, '^T' DEFINE BAR 6 OF conversion PROMPT 'T<ime' ; KEY CTRL+I, '^I' DEFINE BAR 7 OF conversion PROMPT 'Volu<me' ; KEY CTRL+M, '^M' ON SELECTION POPUP conversion DO choice IN defimenu WITH PROMPT( ), POPUP( ) DEFINE POPUP cardinfo MARGIN RELATIVE COLOR SCHEME 4 DEFINE BAR 1 OF cardinfo PROMPT '<View Charges' ; KEY ALT+V, '' DEFINE BAR 2 OF cardinfo PROMPT 'View <Payments' ; KEY ALT+P, '' DEFINE BAR 3 OF cardinfo PROMPT 'Vie<w Users' ; KEY ALT+W, '' DEFINE BAR 4 OF cardinfo PROMPT '-' DEFINE BAR 5 OF cardinfo PROMPT '<Charges ' ON SELECTION POPUP cardinfo; DO choice IN defimenu WITH PROMPT( ), POPUP( )

ACTIVATE MENU example
DEACTIVATE MENU example
RELEASE MENU example EXTENDED
SET SYSMENU TO DEFAULT
ON KEY LABEL ESC
PROCEDURE choice
PARAMETERS mprompt, mpopup
WAIT WINDOW 'You chose ' + mprompt + ;
    ' from popup ' + mpopup NOWAIT

Siehe auch

ACTIVATE MENU | CNTPAD( ) | CREATE MENU | DEACTIVATE MENU | DEFINE PAD | GETPAD( ) | HIDE MENU | MRKPAD( ) | ON PAD | ON SELECTION PAD | PRMPAD( ) | RELEASE MENUS | RELEASE PAD | SET MARK OF | SET SYSMENU | SHOW MENU