Графические возможности Delphi. Image.

Этот компонент служит для размещения на форме одного из трех поддерживаемых Delphi типов изображений: растровой картинки, пиктограммы или метафайла. Любой из этих типов изображения содержится в центральном свойстве компонента — picture. В свойстве canvas содержится канва, с помощью которой при необходимости программа может отредактировать растровое изображение (но не пиктограмму или метафайл!).

Свойства компонента:

property Center: Boolean;

Указывает, надо ли центрировать изображение в границах компонента. Игнорируется, если Autosize=True или если Stretch =True и изображение не является пиктограммой (ICO)

property Canvas : TCanvas;

Содержит канву для прорисовки изображения

property Transparent: Boolean;

Запрещает/разрешает накладывать собственный фон изображения на фон компонента

property Proportional: Boolean; property Stretch: Boolean;

Разрешает/запрещает изменять размер изображения так, чтобы оно целиком заполнило клиентскую область компонента.

property Picture: TPicture;

Разрешает/запрещает пропорционально уменьшать высоту и ширину изображения, если оно не может целиком уместиться в рабочей зоне компонента

property IncrementalDisplay: Boolean;

Разрешает/запрещает показ большого изображения по мере его загрузки Центральное свойство класса. Служит контейнером изображения

Методы компонента:

Никаких специальных методов у Image нет.

Описание использования:

Иллюстрацию, которая будет выведена в поле компонента image, можно задать как во время разработки формы приложения, так и во время работы программы.

Во время разработки формы иллюстрация задается установкой значения свойства picture путем выбора файла иллюстрации в стандартном диалоговом окне, которое появляется в результате щелчка на командной кнопке Load окна Picture Editor. Чтобы запустить Image Editor, нужно в окне Object Inspector выбрать свойство Picture и щелкнуть на кнопке с тремя точками.

Если размер иллюстрации больше размера компонента, то свойству strech нужно присвоить значение True и установить значения свойств width и Height пропорционально реальным размерам иллюстрации.

Чтобы вывести иллюстрацию в поле компонента image во время работы программы, нужно применить метод LoadFromFile к свойству Picture, указав в качестве параметра имя файла иллюстрации. Например, инструкция

Form1.Image1.Picture.LoadFromFile('e:\temp\bart.bmp')

загружает иллюстрацию из файла bart.bmp и выводит ее в поле вывода иллюстрации (imagel).

Метод LoadFromFile позволяет отображать иллюстрации различных графических форматов: BMP, WMF, JPEG (файлы с расширением jpg).

Пример использования.

Написать программу-фотоальбом, которая позволяет просматривать фотографии и оставлять к ним записи.

Реализация.

Замечание. Для работоспособности программы необходимо создать в папке программы текстовый файл comment.txt и сменить ему расширение на .dat (comment.dat); также необходимо разместить 10 графических файлов с расширением .bmp и имеющих имена от 1 до 10.

Данная программа представляет собой прототип программы-фотоальбома. Она представлена для ознакомления принципа использования Image.

Интерфейс:

Вид инспектора объектов:

 

Программный код.

Для Panel1.Visible:=False;

Type mas=array [1..10] of String;

Var n:Integer;

    log_f:TextFile;

    a:mas;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Form1.BitBtn2.Caption:='Вперед';

n:=n+1;

If n=11 then n:=1;

Form1.Image1.Picture.LoadFromFile(IntToStr(n)+'.bmp');

Form1.BitBtn3.Visible:=True;

Form1.GroupBox1.Visible:=True;

Form1.BitBtn4.Visible:=True;

Form1.Label1.Caption:=a[n];

If a[n]='' then Form1.BitBtn4.Caption:='Добавить'

else Form1.BitBtn4.Caption:='Изменить';

end;

 

procedure TForm1.FormCreate(Sender: TObject);

var i:byte;

begin

n:=0;

Form1.BitBtn3.Visible:=False;

Form1.BitBtn4.Visible:=False;

Form1.GroupBox1.Visible:=False;

Form1.BitBtn2.Caption:='Просмотр';

Form1.Panel1.Visible:=False;

AssignFile(log_f,'comment.dat');

Try

Reset(log_f);

For i:=1 to 10 do

ReadLn(log_f,a[i]);

CloseFile(log_f);

except

ShowMessage('Файл comment.dat не найден!'+#13#10+

'Программа завершит свою работу.');

Form1.Close;

end;

end;

 

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

n:=n-1;

If n=0 then n:=10;

Form1.Image1.Picture.LoadFromFile(IntToStr(n)+'.bmp');

Form1.Label1.Caption:=a[n];

If a[n]='' then Form1.BitBtn4.Caption:='Добавить'

else Form1.BitBtn4.Caption:='Изменить';

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

Var j:byte;

begin

ReWrite(log_f);

For j:=1 to 10 do

WriteLn(log_f,a[j]);

CloseFile(log_f);

Form1.Close;

end;

 

 

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

Form1.Memo1.Clear;

Form1.BitBtn6.Caption:=Form1.BitBtn4.Caption;

If Form1.BitBtn6.Caption='Добавить' then Form1.Label2.Caption:='Добавление комментария'

else

 Begin

 Form1.Memo1.Text:=a[n];

 Form1.Label2.Caption:='Изменение комментария';

 End;

Panel1.Visible:=True;

end;

 

procedure TForm1.BitBtn5Click(Sender: TObject);

begin

Form1.Panel1.Visible:=False;

end;

 

procedure TForm1.BitBtn6Click(Sender: TObject);

begin

a[n]:=Form1.Memo1.Text;

Form1.Label1.Caption:=a[n];

Form1.Panel1.Visible:=False;

end;

На главную

Используются технологии uCoz