Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
FormColor: TButton;
ShapeColor: TButton;
ScrollBar1: TScrollBar;
ComboBox1: TComboBox;
Shape1: TShape;
ColorDialog1: TColorDialog;
ScrollBar2: TScrollBar;
Panel1: TPanel;
procedure FormColorClick(Sender: TObject);
procedure ShapeColorClick(Sender: TObject);
procedure ScrollBar1Change(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
{$R *.DFM}
procedure TForm1.FormColorClick(Sender: TObject);
begin
if ColorDialog1.Execute then Form1.Color:= ColorDialog1.Color;
end;
procedure TForm1.ShapeColorClick(Sender: TObject);
begin
if ColorDialog1.Execute then Shape1.Brush.Color:= ColorDialog1.Color;
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
Shape1.Width:= ScrollBar1.Position*3;
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
Shape1.Height:= ScrollBar2.Position*3;
end;
procedure TForm1.ComboBox1Click(Sender: TObject);
var
Index: integer;
begin
if ComboBox1.Text='stRectangle' then Index:=0;
if ComboBox1.Text='stSquare' then Index:=1;
if ComboBox1.Text='stRoundRect' then Index:=2;
if ComboBox1.Text='stRoundSquare' then Index:=3;
if ComboBox1.Text='stEllipse' then Index:=4;
if ComboBox1.Text='stCircle' then Index:=5;
Shape1.Shape:=TShapeType(Index);
end;
end.
Завдання 3
Створити проект роботи з метафайлом. Метафайл містить графік із двома фігурами (еліпс і квадрат), створюється програмно, відображається на формі й зберігається на диску ПК. Для перевірки правильності метафайла він зчитується в компонент Image форми. Проект - додаток.
На Рис. 1. показано форму проекту завдання 3. Вона містить компонент Image1 для перегляду метафайла й дві кнопки:
Button1 - «Створити метафайл». При натисканні кнопки метафайл MyMetafile.wmf створюється, прорисовується на формі й зберігається на диску.
Button2 - «Дивитися метафайл». Натискання цієї кнопки приводить до відображення метафайла в компоненті Image1 форми.
Рис. 1.5. Форма проекту завдання 3
Листинг модуля форми
unit Prg_1_3_;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Sozdath: TButton;
Image1: TImage;
Smotreth: TButton;
procedure SozdathClick(Sender: TObject);
procedure SmotrethClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
MyMetafile:TMetafile;
Implementation
{$R *.dfm}
procedure TForm1. SozdathClick(Sender: TObject);
begin
with TMetafileCanvas.Create(MyMetafile, 0) do
try
Brush.Color := clRed;
Ellipse(0,0,150,100); // Малюємо еліпс
Brush.Color:=clWhite;
Rectangle(150,150,200,200); // Малюємо квадрат
finally
Free
end;
MyMetafile.SaveToFile('MyMetafile.wmf'); // Зберегти метафайл
Form1.Canvas.Draw(0,0,MyMetafile); // Малювати метафайл на формі
end;
procedure TForm1. SmotrethClick(Sender: TObject);
begin
Image1.Picture.LoadFromFile('MyMetafile.wmf'); // Перегляд
end;