Лабораторная работа №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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!