|
Компонент TImage
Этот компонент служит надстройкой над
классом TPicture и замыкает всю
иерархию графических объектов VCL. Именно на его поверхности
и будут отображаться графические объекты, содержащиеся
в свойстве:
property Picture:
TPicture;
В качестве канвы компонента (свойство
canvas) используется канва объекта
из свойства Picture.Graphic, но
только если поле Graphic ссылается
на объект класса TBitmap. Если
это не так, то попытка обращения к свойству вызовет
исключительную ситуацию EinvaiidOperation,
т. к. рисовать на метафайле или значке нельзя.
Следующие три свойства определяют,
как именно графический объект располагается в клиентской
области компонента:
- property AutoSize: Boolean;
Означает, что размеры компонента настраиваются
по размерам содержащегося в нем графического объекта.
Устанавливать его в значение True
нужно перед загрузкой изображения из файла или буфера
обмена.
- property Stretch: Boolean;
Если это свойство установлено в значение
True, то изображение "натягивается"
на клиентскую область, при необходимости уменьшая или
увеличивая свои размеры. Если оно установлено в False,
то играет роль следующее свойство Center.
- property Center: Boolean;
Если это свойство установлено в значение
True, изображение центрируется
в пределах клиентской области. В противном случае оно
располагается в ее верхнем левом углу.
Несмотря на то, что описанию свойств
и методов графических объектов здесь отведено уже довольно
много места, работа с ними проста и удобна. Программу
для просмотра изображений в среде Delphi можно создать
буквально "в три счета":
1. Поместите на форму следующие компоненты:
область прокрутки TScrollBox,
на нее — компонент Timage (их
верхние левые углы должны совпадать), любую кнопку (например,
TButton) и диалог открытия файлов
TOpenPictureDialog.
2. Подключите к главному модулю создаваемого
приложения модуль JPEG (в предложении uses);
свойство AutoSize компонента
Timage установите в значение
True.
3. Дважды щелкните мышью на кнопке.
В появившемся обработчике события oncдick
напишите такой код:
procedure TForml.BitBtnlClick(Sender:
TObject);
begin
OpenPictureDialogl.Filter
:= GraphicFilter(TGraphic);
if OpenPictureDialogl.Execute
then Imagel.Picture.LoadFromFile
(OpenPictureDialogl.FileName);
end;
Приложение готово. Обратите внимание
на роль полиморфизма в методе LoadFromFile
— по расширению файла определяется его формат и в зависимости
от этого создается нужный графический объект.
|