Распечатать страницу

Меню в Microsoft Visual FoxPro

« Назад

Приведены в табл. 11.1.

Таблица 11.1

Команды и функции

Команда / функция

Описание

Команды

ACTIVATE MENU
                | POPUP

Отображает и активизирует горизонтальное | вертикальное меню

CLEAR MENUS
                | POPUPS

Удаляет из памяти определения всех горизонтальных | вертикальных меню

CREATE MENU

Открывает проектировщик меню для создания меню

DEACTIVATE MENU
                | POPUP

Делает неактивным и невидимым пользовательское горизонтальное | вертикальное меню; в памяти определение меню сохраняется

DEFINE MENU
                | POPUP

Создает горизонтальное | вертикальное меню

DEFINE PAD | BAR

Создает пункт меню в горизонтальном | вертикальном меню, созданным DEFINE MENU | POPUP

EXTERNAL MENU

Предупреждает диспетчер проекта о внешней ссылке (внешнем меню)

HIDE MENU
                | POPUP

Скрывает одно или более пользовательских горизонтальных | вертикальных меню

MODIFY MENU

Открывает проектировщик меню для создания нового или изменения существующего меню

MOVE POPUP

Перемещает пользовательское вертикальное меню

ON PAD | BAR

Задает горизонтальное | вертикальное меню, активизируемое при выборе указанного пункта горизонтального | вертикального меню

ON SELECTION
                PAD | BAR

Задает команду, выполняемую при выборе указанного пункта заданного или любого горизонтального | вертикального меню

ON SELECTION
                MENU | POPUP

Задает команду, выполняемую при выборе любого пункта заданного или любого горизонтального | вертикального меню

POP MENU | POPUP

Достает определение горизонтального | вертикального меню из стека, помещенное в него командой PUSH MENU | POPUP

PUSH MENU | POPUP

Помещает в стек определение горизонтального | вертикального меню

RELEASE PAD
                | BAR

Удаляет из памяти заданный или все пункты горизонтального | вертикального меню

RELEASE MENUS
                | POPUPS

Удаляет из памяти пользовательские горизонтальные | вертикальные меню

SET MARK OF MENU

Задает, отображает или стирает маркер (один символом) пункта меню

SET SKIP OF

Активизирует или делает неактивным меню или его пункт; употребляется как для пользовательского, так и системного меню VFP

SET SYSMENU

Активизирует или делает неактивным системное меню VFP во время исполнения программы и позволяет изменять его конфигурацию

SHOW MENU
                | POPUP

Отображает одно или более пользовательских горизонтальных | вертикальных меню

SIZE POPUP

Изменяет размер вертикального меню

Функции

BAR( )

Возвращает номер последнего выбранного пункта вертикального пользовательского меню или меню VFP

CNTBAR( )

Возвращает число пунктов вертикального пользовательского меню или меню VFP

CNTPAD( )

Возвращает число пунктов горизонтального пользовательского меню или горизонтального меню VFP

GETBAR( )

Возвращает номер пункта вертикального пользовательского меню или меню VFP

GETPAD( )

Возвращает заголовок пункта горизонтального меню

MRKBAR( )

Определяет, имеет ли маркер пункт вертикального пользовательского меню или меню VFP

MRKPAD( )

Определяет, имеет ли маркер пункт горизонтального пользовательского меню или меню VFP

PAD( )

Возвращает в верхнем регистре заголовок последнего выбранного пункта горизонтального меню или возвращает .T., если заданный заголовок имеется в горизонтальном меню, или .F. – в противном случае

PROMPT( )

Возвращает заголовок выбранного пункта горизонтального или вертикального меню

POPUP( )

Возвращает имя активного вертикального меню или логическую величину, указывающую, определено ли вертикальное меню с заданным именем

PRMBAR( )

Возвращает заголовок пункта вертикального меню

PRMPAD( )

Возвращает заголовок пункта горизонтального меню

SKPBAR( )

Определяет, доступен или недоступен пункт вертикального меню

SKPPAD( )

Определяет, доступен или недоступен пункт горизонтального меню

SYS(1500)

Активизирует пункт системного меню VFP

SYS(2013)

Возвращает строку, содержащую внутренние имена системного меню VFP; в качестве разделителей между именами используется пробел.
Само системное меню VFP имеет имя _MSYSMENU; имена подменю системного меню VFP и их пунктов приведены в табл. 11.3 и 11.4

SYS(2015)

Возвращает 10-символьное уникальное имя процедуры, начинающееся со знака подчеркивания; используется, в частности, генератором меню

Системная переменная

_GENMENU

Хранит имя файла с программой, выполняющей генерацию меню

Пример. Создается пользовательское меню Example. Текущее системное меню сохраняется командой SET SYSMENU SAVE, а затем очищается командой SET SYSMENU TO.

Команда DEFINE MENU создает горизонтальное меню, а команды DEFINE PAD – его 2 пункта. Команда DEFINE POPUP употребляется дважды, создавая для каждого пункта горизонтального меню соответствующее вертикальное меню. Команды DEFINE BAR создают пункты в вертикальных меню. Каждое вертикальные меню активизируются при выборе соответствующего пункта горизонтального меню благодаря команде ON PAD, использующей ACTIVATE POPUP.

При выборе пункта вертикального меню ON SELECTION POPUP обеспечивает печать заголовка пункта и имени вертикального меню.

set sysmenu save

set sysmenu to

&&

define menu Example

&&

define pad Convpad of Example prompt 'Условия' color scheme 3

define pad Cardpad of Example prompt 'Информация' color scheme 3

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 'Площадь' key Ctrl+R, '^R'

define bar 2 of Conversion prompt 'Длина' key Ctrl+N, '^N'

define bar 3 of Conversion prompt 'Масса' key Ctrl+M, '^M'

&&

on selection popup Conversion do Choice with Prompt( ), Popup( )

&&

define popup Cardinfo margin relative color scheme 4

define bar 1 of Cardinfo prompt 'Просмотр модели' key Alt+L, 'Alt+L'

define bar 2 of Cardinfo prompt 'Список параметров' key Alt+O, 'Alt+O'

&&

on selection popup Cardinfo do Choice with Prompt( ), Popup( )

&&

&& Активизированное меню Example приведено на рис. 11.1

activate menu Example

deactivate menu Example

&& Освобождаем меню и все ассоциированные с ним подменю и команды

release menu Example extended

&& Восстанавливаем системное меню

set sysmenu to default 

procedure Choice

                                            parameters mPrompt, mPopup

                                            wait window 'Команда ' + mPrompt ;

                                               + ' выбрана из вертикального меню ' + mPopup nowait

endProc

170.1.-Пользовательское-меню-Example

Рис. 11.1. Пользовательское меню Example