Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сокращённые консультации к ГОС.doc
Скачиваний:
3
Добавлен:
21.09.2019
Размер:
377.34 Кб
Скачать

32. Создание и работа с меню

Цель создания меню - обеспечить пользователю простой доступ ко всем компонентам приложения. Обычно проект содержит собственное меню, которое заменяет основное меню Visual FoxPro, и команды для выполнения конкретных задач. С помощью меню организуется одновременная работа с такими заранее созданными объектами, как базы данных, таблицы, представления, запросы, формы, отчеты, программы и т.д.

Структура меню

Меню может быть двух типов:

  • горизонтальное, состоящее из нескольких пунктов расположенных горизонтально;

  • вертикальное – меню, состоящее из нескольких вертикально расположенных строк.

Примером горизонтального меню является основное меню программы Visual FoxPro, состоящее из нескольких горизонтально расположенных пунктов, которые называют PAD-пунктами (например, пункты File, Edit, View...). Примером вертикального меню является контекстное, вызываемое правым щелчком мыши.

Для создания меню служит команда CREATE MENU. После её выполнения открывается окно конструктора меню.

Чтобы запустить созданное меню применяется команда ACTIVATE MENU <имя файла>.

Модификация меню выполняется командой MODIFY MENU<имя файла>.

Создание меню визуальными средствами FoxPro

Создание пользовательского меню производится средствами конструктора меню (Menu Designer). Его запуск производится командой File→New→Menu→New file.

В открывшемся диалоговом окне New Menu из предложенных вариантов:

а) Menu – линейное (Bar-меню);

б) Shortcut – всплывающее (Popup-меню)

выберите пункт Menu. Откроется окно Menu Designer (Конструктор меню) – Menu1 (рис.27).

При этом в основном меню программы Visual FoxPro появится пункт Menu для работы с создаваемым меню.

Рисунок 1. Окно конструктора меню (Menu Designer). Создание пункта Service

Рассмотрим создание меню на примере. Например, горизонтальное меню будет состоять из двух Pad-пунктов:

  • Service (Сервис). Пункт меню Service будет открывать всплывающее (Popup) меню, содержащее строки вызова календаря и калькулятора;

  • Exit. Выход из программы и очистка экрана.

Прежде всего, следует создать пункты горизонтальной строки меню. В колонку Prompt (подсказка) окна Menu Designer введите название пункта меню, в нашем случае Service. Русские названия пунктов меню вводить нельзя.

В колонке Result можно выбрать один из вариантов действия на выбор данного пункта меню:

  • Command. Выполняется команда, которая записывается правее колонки Result;

  • Submenu (Подменю). Создаётся всплывающее меню. Для определения его пунктов щелкните на кнопке Create, появившейся справа.

  • Procedure. Выполняется процедура (последовательность команд), для создания которой необходимо щелкнуть на кнопке Create, что вызовет открытие окна редактора.

  • Pad Name или Bar #. Позволяет использовать элементы системного меню (при вводе одной из команд, предусмотренных для этой цели в программе FoxPro).

В нашем случае выберите пункт Submenu (подменю), поскольку нам требуется создать два пункта всплывающего меню (для запуска календаря и дневника). Щёлкните по кнопке Create. В открывшемся окне введите соответствующие команды, как показано на рисунке.

Для возврата к предыдущему окну (на самый верхний уровень меню) выберите в поле Menu Level (Уровень меню), предназначенном для перемещения по уровням меню, строку Bar.

Вторым нашего горизонтального меню будет пункт Exit (Выход), который следует ввести в поле Prompt. Здесь предполагает вызов процедуры, завершающий пользование созданным меню и возврат к стандартному главному меню. Выберите пункт Procedure в поле Result и щелкните по кнопке Create.

В открывшемся окне Menu Designer – Menu 2 – Exit Procedure запишите показанный ниже код процедуры выхода из меню, который содержит команды для очистки экрана от системных окон и окна формы.

Рисунок 2. Окно конструктора меню. Создание пунктов подменю

RELEASE WINDOW CALENDAR

RELEASE WINDOW CALCULATOR && закрываются окна

CLEAR WINDOWS && закрываются окна

SET SYSMENU TO DEFAULT && устанавливается меню по умолчанию

CLOSE ALL && закрываются все файлы

Закончив ввод процедуры, закройте окно редактора, в которое вводили процедуру. Произойдёт переход в предыдущее окно, процедура будет автоматически сохранена.

При запуске меню автоматически выполняется команда READ EVENTS, которая включает механизм обработки событий. Этот механизм реагирует на перемещение по пунктам меню и обеспечивает передачу событий формам и объектам в них, в том числе и меню.

Отключение механизма обработки событий выполняется командой CLEAR EVENTS. При этом обработка событий прекращается, но объект остается активным.

Далее следует создать программный файл меню. Для этого в меню Menu выберите пункт Generate. При этом потребуется ввести имя файла меню. Будут созданы два файла описания меню с расширениями .mnx и .mnt (расширения будут подставлены автоматически). После этого откроется окно Generate menu, где будет указано имя создаваемого программного файла (Output file), имеющего расширение .mpr. Дайте файлу имя и нажмите кнопку Generate. Теперь можно закрыть окно создания меню. Таким образом, при создании меню созданы три файла, отличающиеся расширением.

Запуск меню

Для запуска меню выберите пункт DO! в меню Program. В открывшемся окне DO выберите файл меню с расширением .mpr и нажмите ввод. Заметьте, что меню, созданное вами, появилось взамен главного меню FoxPro. Опробуйте действия всех пунктов меню. Для выхода используйте пункт Exit созданного меню.

Обратите внимание на то, что после запуска программы появился четвёртый файл – скомпилированный программный файл меню, имеющий расширение .mpx