Лабораторная работа №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.
Указания к выполнению работы
Запустите оболочку Delphi.
Ознакомьтесь с набором компонентов, представленных на странице палитры Win 3.1.
Создайте новое приложение.
Сохраните новый проект в новой директории с именем "L_R_№4".
Поместите на поле формы следующие компоненты со страницы Win 3.1:
· TDriveComboBox;
· TDirectoryListBox;
· TFileListBox.
|
|
Расположите эти элементы в перечисленном порядке, выровняйте их и установите взаимные ссылки.
Для компонента FileListBox установите фильтр отображения файлов только с расширением BMP.
Поместите на форму компонент TPanel и задайте для него размеры по горизонтали и вертикали пропорционально отношению: 640х480. Свойство Panel1.BevelInner установите в bvLowered, а Panel1.BevelOuter в bvRaised. Пронаблюдайте реакцию.
Разместите на Panel1 компонент TImage. Его свойства AutoSize и Center установите в True, а Align - в alClient.
Обработчик события смены текущего файла для компонента-списка файлов запрограммируйте следующим образом. Объявите в нём две локальные переменные:
Bitmap: HBitmap ; // HBitmap – тип указателя на TBitmap
BM: Windows.TBitmap;
и внесите текст:
Bitmap:=LoadImage (0, PChar (FileListBox1. FileName), Image_Bitmap, 0, 0,
LR_LOADFROMFILE );
GetObject (Bitmap, SizeOf (BM), @BM);
if (BM.bmHeight > Image1.Height) or (BM.bmWidth > Image1.Width)
then Image1.Stretch := True
else Image1.Stretch := False;
if FileListBox1.FileName <> '' then
Image1.Picture.LoadFromFile (FileListBox1.FileName);
Задайте общее название для проекта и основной формы "Навигатор-просмотрщик файлов *.BMP". Подключите собственную иконку.
Сохраните проект. Запустите ПП на трансляцию и выполнение.
Продемонстрируйте работу преподавателю.
Контрольные вопросы и задания
|
|
1. Как установить взаимные ссылки между компонентами TDriveComboBox , TDirectoryListBox и TFileListBox? Для чего это необходимо?
2. По каким правилам формируется значение свойства Mask для компонента - списка файлов?
3. За что отвечает свойство Stretch компонента TImage?
4. Каково функциональное назначение свойства AutoSize компонента TImage?
5. Какое событие происходит при смене текущего файла у компонента TFileListBox?
Дата добавления: 2018-05-13; просмотров: 220; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!