Міністерство освіти науки молоді та спорту
Національний університет «Львівська політехніка»
КОНТРОЛЬНА РОБОТА
на тему
“Створення проекту з елементами графіки”
Мета: Створити проект Delphi для побудови рухомих графічних зображень. Основні елементи зображення розглядати як об’єкти класів, які необхідно ввести та описати. Рух або зміну об’єктів реалізувати за допомогою відповідних методів класів.
Завдання: Файл копіюється(політ);
Код програми:
unit unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Unit2,Unit3;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1 : TForm1;
tf : TFile;
tr : TRamka;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i,j,p,h,n:Integer;
begin
with Canvas do
begin
tr.PainR(Form1.Canvas);
tf.PainM(Form1.Canvas);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TFile=class
procedure PainF(x1:Integer;y1:Integer;x2:Integer;y2:Integer;BColor:LongInt;PColor:LongInt;c:TCanvas);
procedure PainM(c:TCanvas);
end;
var
tf : TFile;
implementation
procedure TFile.PainF(x1:Integer;y1:Integer;x2:Integer;y2:Integer;BColor:Longint;PColor:LongInt;c:TCanvas);
begin
with c do
begin
Brush.Color:=BColor;
Pen.Color:=PColor;
Rectangle(x1,y1,x2,y2);
end;
end;
procedure TFile.PainM(c:TCanvas);
var
h,p,i,n:Integer;
begin
with c do
begin
h:=-1;
Brush.Color:=16119000;
for p:=1 to 2 do
begin
for i:=1 to 190 do
begin
tf.PainF(105+i-1,50,135+i-1,80,16119000,16119000,c);
tf.PainF(105+i,50,135+i,80,clWhite,clGray,c);
if h>=0 then
n:=i+190
else
n:=i;
if n<369 then
begin
Pen.Color:=clBlue;
MoveTo(30+n,130);
LineTo(30+n,140);
end;
sleep(12);
end;
h:=1;
Pen.Color:=16119000;
Brush.Color:=16119000;
Rectangle(104+i,50,135+i,80);
sleep(20);
end;
Pen.Color:=16119000;
Brush.Color:=16119000;
Rectangle(35,110,215,130);
TextOut(37,110,'виконано');
end;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TRamka=class
procedure PainR(c:TCanvas);
end;
implementation
procedure TRamka.PainR(c:TCanvas);
begin
with c do
begin
Pen.Color := clBlue;
Brush.Color := 16119000;
Rectangle(30,20,400,200);
MoveTo(30,42);
LineTo(400,42);
TextOut(37,25,'копіювання...');
MoveTo(30,90);
LineTo(400,90);
Rectangle(30,130,400,140);
TextOut(37,170,'Опрацювання: Файл1.exe');
Rectangle(300,167,385,188);
TextOut(315,170,'Скасувати');
//папки
Pen.Color:=clOlive;
Brush.Color := clOlive;
//1 папка
MoveTo(70,50);
LineTo(100,54);
LineTo(100,84);
LineTo(70,79);
LineTo(70,50);
FloodFill(80,60,clOlive,fsBorder);
//2 папка
MoveTo(330,50);
LineTo(360,54);
LineTo(360,84);
LineTo(330,79);
LineTo(330,50);
FloodFill(350,60,clOlive,fsBorder);
//лінія розділення
Pen.Color:=clGray;
MoveTo(30,155);
LineTo(400,155);
//Brush.Color:=clBlue;
//Rectangle(30,130,235,140);
Pen.Color := clred;
Brush.Color:=clRed;
Rectangle(360,20,400,43);
//хрестик
Pen.Color := clWhite;
MoveTo(370,27);
LineTo(390,37);