Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка№7 29.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.81 Mб
Скачать

6. Добавление меню в форму верхнего уровня

В процессе проектирования программного приложения может возникнуть вопрос: “Как поместить только что созданное меню в окне своей программы, а не вместо основного меню Visual FoxPro?” Для осуществления задуманного необходимо выполнить следующие действия:

  1. В меню View строки основного меню Visual FoxPro выбрать General Options.

  2. В окне General Options установить флажок Top-Level-Form (рис. 9).

Рис. 9. Окно General Options

  1. Свойство ShowWindow главной формы программы установить в значение 2 – As Top-Level Form (рис. 10).

  2. В процедуре 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