Компонент 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 — по расширению файла определяется его формат и в зависимости от этого создается нужный графический объект.
|