Графика и мультимедиа___________________________________325

ресное приложение, в котором пользователь сможет просматривать и загружать
любые графические файлы. Для этого достаточно перенести на форму компонент
OpenPictureDialog, расположенный в библиотеке на странице Dialogs и вызываю-
щий диалоговое окно открытия и предварительного просмотра изображения
(рис. 5.2), а также кнопку, запускающую просмотр или меню с единственным раз-
делом Файл.

А теперь вам осталось написать всего один оператор в обработчике щелчка на
кнопке или на разделе меню:

if (OpenPictureDialogl->Execute())
Imagel->Picture->LoadFromFile(OpenPictureDialogl->FileName);

Этот оператор загружает в свойство Picture компонента Imagel файл, выбран-
ный в диалоге пользователем. Выполните свое приложение и проверьте его в рабо-
те. Щелкая на кнопке вы можете выбрать любой графический файл и загрузить
его в компонент Imagel.

В таком приложении есть один недостаток — изображения могут быть разных
размеров и их положение на форме или будет несимметричным, или они не будут
помещаться в окне. Это легко изменить, заставив форму автоматически настраива-
ться на размеры изображения. Для этого надо установить в компоненте Imagel
свойство AutoSize равным true, а приведенный ранее оператор изменить следую-
щим образом:

if (OpenPictureDialogl->Execute())
(

Imagel->Picture->LoadFromFile(OpenPictureDialogl->FileName);

Forml->ClientHeight = Imagel->Height + 10;

Imagel->Top -= Forml->ClientRect.Top + (Forml->ClientHeight -
Imagel->Height) / 2;

Forml->ClientWidth = Imagel->Width + 10;

Imagel->Left = Forml->ClientRect.Left + (Forml->ClientWidth -
Imagel->Width) / 2;

1

В этом коде размеры клиентской области формы устанавливаются несколько
больше размеров компонента Imagel, которые в свою очередь адаптируются к раз-
меру картинки благодаря свойству AutoSize.

Запустите теперь ваше приложение, и вы увидите (рис. 5.3), что при различ-
ных размерах изображения ваше приложение выглядит отлично.

Рис. 5.3

Адаптация формы к
размерам изображения

5.1.1.3 Форматы графических файлов

Прежде, чем продвигаться дальше, поговорим немного о форматах графиче-
ских файлов. C++Builder поддерживает три типа файлов — битовые матрицы,
пиктограммы и метафайлы. Все три типа файлов хранят изображения; различие