Файл: ...\Samples\Solution\Menus\Dynshort.scx

Этот пример иллюстрирует альтернативный путь создания меню быстрого вызова.

Меню быстрого вызова в примере  Отображение меню быстрого вызова (команд) было создано в Конструкторе Меню. Преимущества использования Конструктора Меню состоит в удобстве разработки меню, способности созданиякаскадного меню и простой интеграции меню в форму. Однако, при использовании  Конструктора Меню Вам понадобятся отдельные .mnx, .mnt, и .mpr файлы для каждого меню быстрого вызова. Если Вы сделаете изменение в меню, то снова потребуется его сгенерировать и скомпилировать.

Движителем динамического меню быстрого вызова является пользовательский класс, который Вы можете добавить в любую форму: menulib in ...\Samples\Classes\Utility.vcx.  В этом классе метод ShowMenu определяет меню и отображает его в позиции MousePointer как это определено функциями MROW( ) и MCOL( ).

Для создания меню быстрого вызова в событии объекта RightClick проделайте следующее:

  1. Создайте массив с пунктами меню быстрого вызова.

  2. Передайте массив в метод ShowMenu класса menulib.

  3. Обработайте пользовательский выбор путем проверки значения функции BAR( ).

Ниже приведен код события формы RightClick:

 CopyCode imageКопировать код
LOCAL laMenu[5]

laMenu=""
laMenu[1]="\<Center"
laMenu[2]="\<Font..."
laMenu[3]="\<Minimize"
laMenu[4]="\-"
laMenu[5]="E\<xit"
THISFORM.oMenuShortcut.ShowMenu(@laMenu)
DO CASE
CASE BAR()=1
THISFORM.AutoCenter=.T.
CASE BAR()=2
THISFORM.SetFont
CASE BAR()=3
THISFORM.WindowState=1
CASE BAR()=5
THISFORM.Release
ENDCASE

См. также