Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:АСОИ, Delphi, много вариантов 2 сем / 1классы / кораблик_с_флагом / Unit2
.pas unit Unit2;
interface
uses Graphics;
type
Tpriam=Class(Tobject)
mx1,my1, mx2,my2,dy:integer;
bodycol, pencolor:Tcolor;
canvas:Tcanvas;
procedure draw(xx1,yy1,xx2,yy2:integer;pencol,brushcol:Tcolor);
end;
Tflag=class(tpriam)
procedure body;
procedure flag;
procedure vniz;
procedure vverh;
//procedure move(dx,dy:integer);
constructor create(x1,y1,x2,y2,dy1:integer;bodycol1:Tcolor;canvas1:Tcanvas);
end;
implementation
constructor tflag.create(x1,y1,x2,y2,dy1:integer;bodycol1:Tcolor;canvas1:Tcanvas);
begin
mx1:=x1;
mx2:=x2;
my1:=y1;
my2:=y2;
dy:=dy1;
bodycol:=bodycol1;
canvas:=canvas1;
end;
procedure tflag.body;
begin
draw(mx1,my1,mx2,my2,clblack,bodycol);
canvas.MoveTo(mx1,my1);
canvas.LineTo(mx1-60,my1);
canvas.lineto(mx1,my2);
canvas.MOveto(mx2-1,my2-1);
canvas.lineto(mx2+60,my1);
canvas.lineto(mx2-4,my1);
canvas.FloodFill(mx1-1,my1+1,clblack,fsBorder);
canvas.FloodFill(mx2+1,my1+1,clblack,fsBorder);
canvas.MoveTo(mx1+(mx2-mx1) div 2,my1);
canvas.lineto(mx1+(mx2-mx1) div 2,my1-150);
end;
procedure tflag.flag;
begin
draw(mx1+(mx2-mx1) div 2,my1-150,mx2-70,my2-200,clblack,CLGreen);
end;
procedure tflag.vniz;
var i,k:integer;
begin
i:=my2-200;
while i<=my1 do
begin
for k:=1 to 100000000 do;
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clBlue,CLBlue);
canvas.Pen.Color:=Clblack;
canvas.MoveTo(mx1+(mx2-mx1) div 2,my1);
canvas.lineto(mx1+(mx2-mx1) div 2,my1-150);
i:=i+dy-61;
dy:=dy+2;
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clblack,CLGREEN);
end;
end;
procedure tflag.vverh;
var i,k:integer;
begin
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clBlue,CLBlue);
i:=130;
while i>=0 do
begin
for k:=1 to 100000000 do;
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clBlue,CLBlue);
canvas.Pen.Color:=Clblack;
canvas.MoveTo(mx1+(mx2-mx1) div 2,my1);
canvas.lineto(mx1+(mx2-mx1) div 2,my1-150);
i:=i-2;
dy:=dy-2;
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clblack,CLGreen);
end;
end;
procedure tpriam.draw(xx1,yy1,xx2,yy2:integer;pencol,brushcol:Tcolor);
begin
canvas.Pen.Color:=pencol;
canvas.Brush.Color:=brushcol;
canvas.rectangle(xx1,yy1,xx2,yy2);
end;
end.
interface
uses Graphics;
type
Tpriam=Class(Tobject)
mx1,my1, mx2,my2,dy:integer;
bodycol, pencolor:Tcolor;
canvas:Tcanvas;
procedure draw(xx1,yy1,xx2,yy2:integer;pencol,brushcol:Tcolor);
end;
Tflag=class(tpriam)
procedure body;
procedure flag;
procedure vniz;
procedure vverh;
//procedure move(dx,dy:integer);
constructor create(x1,y1,x2,y2,dy1:integer;bodycol1:Tcolor;canvas1:Tcanvas);
end;
implementation
constructor tflag.create(x1,y1,x2,y2,dy1:integer;bodycol1:Tcolor;canvas1:Tcanvas);
begin
mx1:=x1;
mx2:=x2;
my1:=y1;
my2:=y2;
dy:=dy1;
bodycol:=bodycol1;
canvas:=canvas1;
end;
procedure tflag.body;
begin
draw(mx1,my1,mx2,my2,clblack,bodycol);
canvas.MoveTo(mx1,my1);
canvas.LineTo(mx1-60,my1);
canvas.lineto(mx1,my2);
canvas.MOveto(mx2-1,my2-1);
canvas.lineto(mx2+60,my1);
canvas.lineto(mx2-4,my1);
canvas.FloodFill(mx1-1,my1+1,clblack,fsBorder);
canvas.FloodFill(mx2+1,my1+1,clblack,fsBorder);
canvas.MoveTo(mx1+(mx2-mx1) div 2,my1);
canvas.lineto(mx1+(mx2-mx1) div 2,my1-150);
end;
procedure tflag.flag;
begin
draw(mx1+(mx2-mx1) div 2,my1-150,mx2-70,my2-200,clblack,CLGreen);
end;
procedure tflag.vniz;
var i,k:integer;
begin
i:=my2-200;
while i<=my1 do
begin
for k:=1 to 100000000 do;
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clBlue,CLBlue);
canvas.Pen.Color:=Clblack;
canvas.MoveTo(mx1+(mx2-mx1) div 2,my1);
canvas.lineto(mx1+(mx2-mx1) div 2,my1-150);
i:=i+dy-61;
dy:=dy+2;
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clblack,CLGREEN);
end;
end;
procedure tflag.vverh;
var i,k:integer;
begin
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clBlue,CLBlue);
i:=130;
while i>=0 do
begin
for k:=1 to 100000000 do;
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clBlue,CLBlue);
canvas.Pen.Color:=Clblack;
canvas.MoveTo(mx1+(mx2-mx1) div 2,my1);
canvas.lineto(mx1+(mx2-mx1) div 2,my1-150);
i:=i-2;
dy:=dy-2;
draw(mx1+(mx2-mx1) div 2,my1-150+dy,mx2-70,my2-200+dy,clblack,CLGreen);
end;
end;
procedure tpriam.draw(xx1,yy1,xx2,yy2:integer;pencol,brushcol:Tcolor);
begin
canvas.Pen.Color:=pencol;
canvas.Brush.Color:=brushcol;
canvas.rectangle(xx1,yy1,xx2,yy2);
end;
end.