Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Указания к выполнению работы




 

Создайте в личном каталоге поддиректорию 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;

 

Лабораторная работа №4 (2 часа)

 

Создание интерфейса с пользователем

Цель: ознакомиться с работой компонентов поддержки пользователя.

Оборудование: ПЭВМ IBM PC-AT.

Программные средства: ОС семейства Windows, среда Delphi 5.* (или выше).

 

Задание

 

Создать на базе компонентов поддержки пользователя ПП "Навигатор-просмотрщик файлов *.BMP".

 

Программа работы

 

1. Изучить состав компонентов, расположенных на странице Win 3.1 среды Borland Delphi.

2. Изучить назначение и функции компонентов TDriveComboBox, TDirectoryListBox, TFileListBox.

3. Написать текст программы, предварительно разобравшись с алгоритмами предлагаемых примеров - отдельных частей исходного кода программы.

4. Выявить и исправить ошибки.

5. Расставить по тексту комментарии.

6. Откомпилировать исходный текст программы.

 

Пояснения к работе

В данной лабораторной работе Вам необходимо ознакомиться с принципами построения пользовательского интерфейса для ПП.

Для этого Вам предлагается на примере создания ПП типа "Навигатор-просмотрщик файлов *.BMP" использовать по отдельности составные части стандартного диалога – компоненты списки имен дисков, каталогов, файлов и фильтров расширений.

Если установить между этими компонентами взаимные ссылки, то они будут работать вместе, без дополнительного написания исходного кода. При этом для установления связи между компонентом-списком дисков (TDriveComboBox) и компонентом-списком каталогов (TDirectoryListBox) необходимо использовать свойство DriveComboBox1.DirList.

Список каталогов с компонентом-списком файлов (TFileListBox) можно связать, определив указатель на последний в свойстве DirectoryListBox.FileList.

Фильтр отображаемых файлов в списке файлов задаётся шаблоном в свойстве Mask. Значение этого свойства для отображения BMP-файлов можно задать строкой:

 

*.bmp; *.BMP

 

Для определения реакции на смену текущего файла у компонента FileListBox используется событие OnChange. По этому событию в данном примере с помощью функций API LoadImage() и GetObject() будут определяться размеры картинки (BM.bmHeight, BM.bmWidth), в соответствии с которыми битовое изображение будет показываться либо в натуральную величину (если его размеры меньше или равны размерам Inmage1), либо уменьшаться в масштабе до габаритов Image1. За масштабирование изображения отвечает свойство Image1.Stretch.

 










Последнее изменение этой страницы: 2018-05-27; просмотров: 168.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...