Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
16.04.2013
Размер:
87.04 Кб
Скачать

Лабораторная работа №6

Программирование пользовательского интерфейса с использованием меню и стандартных диалоговых окон

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

Продолжительность работы: 4 часа.

Теоретические сведения

Для создания главной формы в меню системы Delphi выбирается команда File|New Application. Значение свойства Name формы можно задать как fmMAINFORM, а значение свойства Caption -Пример интерфейса.

Чтобы включить меню в главную форму, нужно поместить в нее компонент MainMenu, находящийся на странице Standard палитры компонентов, и вызвать конструктор меню, дважды щелкнув на компоненте MainMenu.

Методика построения меню проста. Разработчику всегда доступен пустой пункт меню. Выбрав его при помощи мыши или клавиш управления курсором, в окне Инспектора объектов нужно задать значения свойств Caption (название пункта меню), Name (имя пункта), Shortcut (комбинация клавиш быстрого выбора). Разновидностью клавиш быстрого выбора является акселератор, который набирается как комбинация клавиш Alt и подчеркнутого символа в названии пункта главного меню или только как подчеркнутый символ в названии пункта дополнительного меню. Акселератор задается знаком амперсанда (&) перед символом в названии пункта меню, являющимся значением свойства Caption.

Пункт-разделитель в меню задается символом "минус" (-) в качестве значения свойства Caption. В табл.1 указаны значения свойств пунктов меню, перечисленных на рис.1. Выход из конструктора меню задается двойным щелчком на кнопке вызова системного меню.

Рис.1. Главное и дополнительные меню

Таблица 1

Свойства пунктов главного и дополнительных меню

Caption

Name

Shortcut

Регистрация

mmRegistrate

Таблицы

mmTables

Отчеты

mmReports

Справка

mmHelp

Житель

mmEditPerson

F5

Квартира

mmEditFlat

F6

Телефон

mmEditPhone

F7

Вид дохода

mmEditProfit

F8

-

mmDelimiter

Вы&ход

mmExit

F10

&Жители

mmShowPersons

&Квартиры

&Телефоны

&Виды доходов

Входные формы

Список жителей

Таблица доходов

Список видов доходов

Этикетки

О системе

mmShowFlats

mmShowPhones

mmShowProfits

mmInitData

mmPersonProfits

mmProfitsTable

mmProfits

mmLabels

mmAboutSys

F1

Примечание. При выборе значения свойства Name для компонента рекомендуется начинать значение двухсимвольным префиксом, обозначающим тип компонента. Например, fm - для компонента типа Form, mm - MainMenu, sp - SpeedButton, la - Label, bu - Button и т.д.

Чтобы предусмотреть процедуру обработки события, связанного с выбором пункта меню Выход, нужно щелкнуть на пункте меню Выход и в активизированном окне текстового редактора, начиная с позиции, отмеченной курсором, набрать оператор, вызывающий метод Close для главной формы fmMAINFORM. В результате этих действий создается процедура, приведенная на листинге 1. Эта процедура будет вызываться при выборе пункта меню Выход либо при нажатии функциональной клавиши F10 или клавиши х (русская буква “ха”), когда отображается дополнительное меню.

Листинг 1. Процедура обработки события, связанного с выбором пункта меню Выход

procedure TfmMAINFORM.mmExitClick (Sender: Tobject);

begin

Close; {это набрал разработчик}

end;

Система Delphi позволяет создавать всплывающие контекстные меню, возникающие при нажатии пользователем правой кнопки мыши. Для этого в палитре компонентов на страницеStandard имеется компонент TPopupMenu. Он определяет всплывающее контекстное меню, появляющееся на экране при щелчке пользователя правой кнопкой мыши в поле компонента, который связан сконтекстным меню своим свойством PopupMenu.

Проектирование меню производится с помощью конструктора меню, вызываемого двойным щелчком на этом компоненте. Команды контекстного меню конструктора Create Submenu позволяет ввести подменю в выделенный пункт.

Свойство Items содержит массив пунктов меню типа TMenuItem, обладающих своими свойствами, методами, событиями. Свойство Caption обозначает надпись пункта, свойство Name - имя объекта пункта, свойство ShortCut определяет клавиши быстрого доступа к пункту. Свойство Default определяет, является ли данный пункт пунктом по умолчанию своего подменю, т.е. пунктом, выполняемым при двойном щелчке пользователя на родительском пункте. Свойство Break используется в длинных меню, чтобы разбить список пунктов на несколько столбцов. Свойство Checked, установленное в True, указывает, что в пункте меню будет отображаться маркер флажка, показывающий, что данный пункт выбран. Еще одним свойством, позволяющим вводить маркеры в пункты меню, является RadioItem. Это свойство, установленное вTrue, определяет, что данный пункт должен работать в режиме радиокнопки совместно с другими пунктами, имеющими то же значение свойства GroupIndex.

Для каждого пункта могут быть установлены во время проектирования или программно во время выполнения свойства Enabled (доступен) и Visible (видимый).

Начиная с Delphi 4 предусмотрена возможность ввода в пункты меню изображений. За это ответственны свойства пунктов Bitmap и ImageIndex. Первое из них позволяет непосредственно ввести изображение в пункт, выбрав его из указанного файла. Второе позволяет указать индекс изображения, хранящегося во внешнем компоненте TImageList. Указание на этот компонент вы можете задать в свойстве Images компонента TPopupMenu.

Основное событие пункта меню - OnClick, возникающее при щелчке пользователя на пункте или при нажатии "горячих" клавиш и клавиш быстрого доступа.

На странице Dialogs палитры компонентов расположены компоненты, реализующие диалог с пользователем в таких типовых случаях, как выбор имени файла для чтения и записи, выбор цвета и шрифта, поиск и замена текста, настройка принтера и параметров печати. Поместив компонент-диалог в форму, программист должен:

  1. настроить параметры диалога с помощью свойства Optionsи других свойств компонента;

  2. вызвать метод Execute, который показывает диалоговое окно на экране и инициирует взаимодействие с пользователем. МетодExecute является функцией: он возвращает True, если пользователь подтвердил ввод значения (т.е. нажал кнопку ОК в диалоговом окне или клавишуEnter на клавиатуре) иFalse,если он отказался от выбора (т.е. нажал кнопкуCancelв диалоговом окне или клавишуEsc на клавиатуре);

  3. в случае положительного ответа (True) запрограммировать чтение установленных значений из свойств компонента-диалога.Примечание:в диалоговых окнах поиска и замены текста нажатие кнопки подтверждения (Find и Replace соответственно) инициирует событие, которое должна обработать программа.

Соседние файлы в папке ВМИП