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