Компонент Shape только условно может быть отнесен к средствам отображения графической информации, поскольку просто представляет собой различные геометрические фигуры, соответствующим образом заштрихованные. Основное свойство этого компонента — Shape (форма), которое может принимать значения: stRectangle прямоугольник
stRoundRect прямоугольник со скругленными углами
stEllipse эллипс
stSquare квадрат
stRoundSquare квадрат со скругленными углами
stCircle круг
Примеры этих форм показаны на рис. 4.7.
Рис. 4.7
Примеры компонента Shape
Другое существенное свойство компонента — Brush (кисть). Это свойство является объектом типа TBrush, имеющим ряд подсвойств, в частности: цвет (Brush.Color) и стиль (Brush.Style) заливки фигуры. Заливку при некоторых значениях Style вы можете видеть на рис. 4.7. Третье из специфических свойство компонента Shape — Pen (перо), определяющее стиль линий. Это свойство, как и свойство Brush, уже рассматривались в разделе 4.2. Справочные данные об этих свойствах вы можете найти в главе 10*.
http://www.beluch.ru/progr/100comp/4_5.htm
Графические возможности 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;