Лабораторная работа №3 (2 часа)
Создание сложных приложений из множества форм
Цель: получить навыки в программировании интерфейса MDI.
Оборудование: ПЭВМ IBM PC-AT.
Программные средства: ОС семейства Windows, среда Delphi 5.* (или выше).
Задание
Используя пример из библиотеки Delphi, создать пробный вариант ПП с интерфейсом MDI.
Программа работы
1. Изучить принципы создания и функционирования ПП с многооконным интерфейсом.
2. Изучить принципы формирования главного меню при создании MDI-приложений.
3. Изучить принципы управления дочерними окнами в MDI-приложениях.
4. В соответствии с заданием внести изменения в текст примера MDI-программы, предварительно сделав её резервную копию.
5. Выявить и исправить ошибки в программе.
6. Расставить по тексту комментарии.
7. Откомпилировать исходный текст программы.
Пояснения к работе
MDI (Multiple Document Interface) —многооконный интерфейс. Это удобный интерфейс, которым обладают многие прикладные приложения. Суть его заключается в использовании одного главного (родительского) и нескольких подчинённых (дочерних) окон.
Родительское окно обычно содержит главное меню приложения, панели с кнопками управления и т.п., а также одно или несколько дочерних окон. Дочерние окна при этом располагаются в рабочей области родительского и не могут быть "вынесены" за его пределы. При активизации одного из дочерних окон можно формировать главное меню родительского окна. При этом имеется возможность расстановки пунктов меню, закреплённых за дочерними окнами в определённые позиции (1-ю, 2-ю и т.д.), либо замены отдельных пунктов, либо замены всех пунктов главного меню родительского окна. Для соответствующих манипуляций в основном проводится работа с компонентами родительских и дочерних окон TMainMenu (конструктор меню) и их свойствами GroupIndex (номер позиции в группе пунктов главного меню).
|
|
Указания к выполнению работы
Создайте в личном каталоге поддиректорию L_r_№3 для сохранения файлов проекта ПП.
Запустите Delphi. Откройте пример проекта MDI Application.
Для этого выполните следующие действия:
- выберите команду главного меню File|New среды Delphi;
- в появившемся диалоговом окне New Items со страницы Projects выберите шаблон MDI Application и на запрос укажите путь к рабочей директории текущего проекта - ...\L_r_№3;
- откомпилируйте пример и запустите программу на выполнение.
В окне приложения выполните несколько раз команду меню File|New.
Исследуйте возможности нового приложения (последовательно выполните все команды меню). Завершите выполнение программы.
Вернувшись в среду разработчика, выполните два коротких нажатия на компоненте MainMenu1, находящейся в поле формы MDI Application. Вставьте в третий пункт меню - "Window" новые подпункты: «-», «&Next» и «&Previous». Для пункта меню Help установите свойство GroupIndex в "2".
|
|
Откройте дочернюю форму - MDI Child (если ее не видно - используйте для открытия комбинацию клавиш Shift + F12). Поместите на неё компонент MainMenu. Активизируйте для компоненты конструктор меню (два коротких нажатия на компоненте). Первому пункту меню присвойте имя "&TEST" и установите его свойство GroupIndex в "1".
Запустите программу и откройте дочернее окно. В меню главного окна должен появиться пункт TEST. Если же дочернее окно закрыть, пункт TEST должен исчезнуть.
Завершите выполнение ПП.
Добавьте в проект две новые формы (дважды выберите команду главного меню - File|New Form) и сделайте их дочерними. Для этого свойству FormStyle у обеих форм присвойте значение fsMDIChild.
Поместите на обе формы по компоненту TMainMenu.
С помощью этих конструкторов меню (двойное нажатие) создайте по пункту Help_Form1 и Help_Form2 соответственно для Form1 и Form2.
Задайте для Help_Form1 и Help_Form2 методы-обработчики по своему усмотрению (например, используя компонент TLabel, запрограммируйте вывод текста - справки по работе с окнами Form1 и Form2).
|
|
Свойству GroupIndex справочного пункта одной из форм присвойте значение "2". В строку uses модуля Main добавьте через запятую: Unit1, Unit2.
Для форм Form1 и Form2 свойства BorderIcon | biSystemMenu установите в True, а в обработчик OnClose для одной из форм внесите следующий оператор:
Action := caFree;
Запустив программу на выполнение, проверьте работу слияния пунктов меню разных дочерних форм с родительской. Пункт меню Help главной формы в одном из случаев должен быть заменён на время активизации дочерней формы соответствующим "Help_Form№".
Вставьте в текст программы методы-обработчики для выполнения действий на реакцию выбора команд «Next» и «Previous». Для этого выполните два коротких нажатия на пункте меню Next формы MDI Application (отвечающего за выбор следующего дочернего окна MDI) и введите код для обработчика события OnClick:
Next;
Аналогичным образом создайте обработчик для пункта Previous (отвечающего за выбор предыдущего активного окна):
Previous;
Проверьте, сохраните и откомпилируйте файл проекта.
Продемонстрируйте работу преподавателю.
Контрольные вопросы и задания
1. Что такое интерфейс MDI?
2. Какими возможностями обладает пример проекта MDI Application?
3. За что отвечает свойство FormStyle у компонента TForm?
|
|
4. Какой вид имеет пункт меню, у которого в свойстве Caption указано значение «-»?
5. Каким образом формируется главное меню родительского окна при использовании MDI - интерфейса?
6. Каково назначение и использование свойства GroupIndex компонента TMainMenu?
7. Раскройте суть выполнения операции Action := caFree;
Дата добавления: 2018-05-13; просмотров: 241; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!