Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Указания к выполнению работы
Создайте в личном каталоге поддиректорию 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; просмотров: 176. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |