Freigeben über


Koordinieren von Menübefehlen und Symbolleistenschaltflächen

Datei:...\Samples\Solution\Menus\Toolmenu.scx

Dieses Beispiel verdeutlicht das Koordinieren von Menüelementen und Symbolleistenschaltflächen, die die gleiche Funktionalität bieten.

Es ist oft sinnvoll, gewisse Funktionalitäten sowohl über Menübefehle als auch über Symbolleistenschaltflächen verfügbar zu machen. So können Sie in Visual FoxPro eine Datei beispielsweise sowohl durch Auswahl der Symbolleistenschaltfläche Speichern als auch durch Auswahl von Speichern aus dem Menü Datei abspeichern.

Im Beispiel gibt es die drei folgenden Komponenten:

Komponente Beschreibung
Toolmenu.scx das Formular
tbrBackColor in Solution.vcx die Symbolleiste
Toolmenu.mnx das Menü

Im Init-Ereignis des Formulars wird ein Symbolleistenobjekt erstellt, dessen Objektverweis eine Eigenschaft auf dem Formular, nämlich oToolbar, ist.

SET CLASSLIB TO ..\solution
This.oToolbar = CREATEOBJECT('tbrbackcolor')

* Position the toolbar and show it
THIS.oToolbar.Left = THIS.Left + 10
THIS.oToolbar.Top = THIS.Top - 50
THIS.oToolbar.Visible = .T.

* Push the current menu on the stack so it can be 
* restored in the Destroy event of the form.
PUSH MENU _MSYSMENU

* Run the menu
DO toolmenu.mpr

Es ist ungünstig, die Funktionalität für die Symbolleiste und das Menü doppelt zu codieren und entsprechend bei Bedarf an beiden Stellen ändern zu müssen. Stattdessen ruft der mit den Menüelementen assoziierte Code den mit den Symbolleistenschaltflächen assoziierten Code auf. So ist beispielsweise folgender Befehl mit dem ersten Menüelement assoziiert:

_VFP.ActiveForm.oToolbar.cmdRed.click

Die SKIP FOR-Klausel der Menüelemente bewirkt deren Deaktivierung, falls die zugehörige Symbolleistenschaltfläche deaktiviert ist. Beispielsweise ist folgender Ausdruck mit der SKIP FOR-Klausel des ersten Menüelements assoziiert:

!_VFP.ActiveForm.oToolbar.cmdRed.Enabled

Siehe auch

Element suchen | Format-Symbolleiste | Lösungsbeispiele | Visual FoxPro Foundation Classes A-Z