
- •Министерство образования российской федерации
- •1. Цель работы
- •2. Подготовка к созданию меню
- •3. Этапы создания стоки меню
- •3.1. Запуск конструктора меню
- •3.2. Создание меню
- •3.3. “Горячие” клавиши
- •3.4. Задание параметров пункта меню в диалоговом окне Prompt Options
- •3.5. Действия для пунктов меню и подменю
- •3.5.1. Определение подменю
- •3.5.2. Определение команды
- •3.5.3. Определение процедуры
- •3.6. Разделители элементов меню
- •4. Сохранение, генерация и запуск меню
- •5. Создание всплывающего меню
- •6. Добавление меню в форму верхнего уровня
- •7. Варианты организации меню
- •7.1. Структура меню
- •7.2. Определение составляющих меню
- •7.3. Определение пунктов pad
- •7.4. Определение всплывающего меню popup
- •6.5. Определение пунктов bar всплывающего меню
- •6.7. Управление доступом к пунктам меню
- •6.8. Описание реакции пунктов меню на выбор
- •7. Создание выполнимого приложения
- •В окне Build Options имеются четыре флажка:
- •9. Порядок выполнения работы
- •10. Контрольные задания
- •11. Контрольные вопросы
6. Добавление меню в форму верхнего уровня
В процессе проектирования программного приложения может возникнуть вопрос: “Как поместить только что созданное меню в окне своей программы, а не вместо основного меню Visual FoxPro?” Для осуществления задуманного необходимо выполнить следующие действия:
В меню View строки основного меню Visual FoxPro выбрать General Options.
В окне General Options установить флажок Top-Level-Form (рис. 9).
Рис. 9. Окно General Options
Свойство ShowWindow главной формы программы установить в значение 2 – As Top-Level Form (рис. 10).
В процедуре Init главного окна программы написать следующий код:
DO <название меню> With This, .F.
В нашем случае, например, следует написать:
DO menu1.mpr With This, .F.
В итоге должно получиться то, что изображено на рис. 11.
Рис. 10. Изменение свойства ShowWindow главной формы программы
Рис. 11. Главное окно программы
7. Варианты организации меню
7.1. Структура меню
Меню любой сложности строится из меню двух типов: горизонтального и вертикального (всплывающего).
Горизонтальное меню, примером которого является основное меню Visual FoxPro 7.0, состоит из нескольких горизонтально расположенных пунктов, которые называются PAD-пунктами (например, пункты File, Edit, View…).
Всплывающее меню – POPUP – состоит из нескольких вертикально расположенных пунктов, которые называются BAR и появляются только при активизации соответствующего PAD-пункта (например, пункты New, Open,Save… пункта File основного меню).
POPUP-меню может использоваться как в составе меню более высокого уровня, так и самостоятельно.
Главное или POPUP-меню определяется и активизируется следующим образом:
DEFINE POP / POPUP <имя меню>
<определение составляющих меню (PAD, POPUP, BAR)>
<описание реакции составляющих меню на выбор>
ACTIVATE MENU < имя меню >
Синтаксис команды создания строки меню следующий:
DEFINE MENU <имя меню>
[BAR [AT LINE <номер строки, в которой появится меню>]]
[IN WINDOW <имя окна, определенного заранее>]
[Font <имя шрифта>]
[STYLE <имя стиля>]
[KEY <имя клавиши, используемой для вызова меню>]
[MESSAGE<сообщение, которое выводится внизу экрана>]
[COLOR SCHEME <список цветовых пар>]
[SCROLL]
Меню с опцией BAR имеет свойство системного меню. Опция [SCROLL] используется, если меню не умещается по ширине экрана.
7.2. Определение составляющих меню
В зависимости от сложности меню проектируется на нескольких уровнях (Menu level). На верхнем уровне определяются независимые меню, к которым относится MENU и всплывающее меню POPUP.
Пункты PAD, составляющие MENU, а также пункты BAR, составляющие всплывающее меню POPUP, зависимы от соответствующего независимого меню. Поэтому для их определения в команде используется конструкция OF <имя независимого меню, включающего этот пункт>.
7.3. Определение пунктов pad
PAD-пункты задаются следующей командой:
DEFINE PAD <имя PAD-пункты> OF <имя BAR-меню, включающего этот PAD>
PROMPT <название PAD-пункта >
[AT <X,Y>]
[BEFORE < имя пункта >/AFTER < имя пункта >]
* определяет положение данного пункта относительно уже включенных
[MESSAGE<текст сообщения>]
[MARK <символ, расположенный слева от пункта меню>]
[KEY <имя клавиши, используемой для вызова меню>]
[SKIP [FOR <вржL, определяющее условие блокировки>]]
[COLOR SCHEME <список цветовых пар>]
Следует различать имя пункта меню и его название (заголовок). Имя задает программный объект и записываться оно должно только латинскими буквами, в то время как заголовок может быть любым.
Например, в следующей команде имя пункта меню – padname, а его заголовок задается символьной строкой ‘\<Информация’. При этом пункт может быть активизирован нажатием клавиши “И”, поскольку она назначена клавишей быстрого доступа:
DEFINE PAD padname OF mainmenu PROMPT ‘\< Информация ’ AT 1, 8