Программный Файл: ...\Samples\Solution\Menus\Toolmenu.scx

Данный Пример демонстрирует координирование Пунктов Меню и кнопок инструментария ToolBar, что обеспечивает соответствующую функциональность.

В некоторых случаях требуется совместить выполняемые функции как для пунктов Меню, так и для кнопок Инструментария (ToolBar). Например, в стандартном Меню Visual FoxPro вы можете сохранить отредактированный Файл нажав кнопку Save в системном ToolBar, или выбрав соответствующий пункт Save из системного меню File.

В рассматриваемом примере используются следующие Компоненты:

Компонент Краткое Описание

Toolmenu.scx

Форма

tbrBackColor из библиотеки Solution.vcx

Инструмент ToolBar

Toolmenu.mnx

Меню

В коде События Init тестовой Формы создается объект ToolBar, ссылка на который сохраняется в свойстве Формы: oToolbar.

  CopyCode imageКопировать Код
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

Чтобы не выполнять двойное программирование функциональности кнопки ToolBar и пункта Меню, или вносить требуемые изменения в программный Код выполняемых функций только в одном месте, рекомендуется использовать следующую команду привязки пункта меню к уже созданной кнопке ToolBar (функциональный код которой уже создан):

  CopyCode imageКопировать Код
_VFP.ActiveForm.oToolbar.cmdRed.click

Для стандартной команды управления доступностью рассматриваемого пункта Меню ( SKIP FOR ),  в качестве логического выражения может передаваться статус доступности соответствующей кнопки Инструмента ToolBar. Например, следующий далее фрагмент команды (Set Skip) может быть использован для управления доступностью первого пункта Меню, который определяет требуемое Логическое выражение:

  CopyCode imageКопировать Код
!_VFP.ActiveForm.oToolbar.cmdRed.Enabled

См. также