pascalabcnet/TestSuite/CompilationSamples/Stamp4.pas
Бондарев Иван e6e67c193c initial commit
2015-05-14 21:35:07 +02:00

39 lines
776 B
ObjectPascal

// Êëàññ øòàìïà ïðÿìîóãîëüíèêà ñ ìåòîäàìè óâåëè÷åíèÿ-óìåíüøåíèÿ îò öåíòðà
uses GraphABC;
type
RectangleStamp = class
x,y,w,h: integer;
constructor (xx,yy,ww,hh: integer);
begin
x := xx; y := yy;
w := ww; h := hh;
end;
procedure Stamp;
begin
Rectangle(x,y,x+w,y+h);
end;
procedure IncreaseFromCenter(dw: integer);
begin
w += dw*2; h += dw*2;
x -= dw; y -= dw;
end;
procedure DecreaseFromCenter(dw: integer);
begin
IncreaseFromCenter(-dw);
end;
procedure MoveOn(dx,dy: integer);
begin
x += dx; y += dy;
end;
end;
begin
var r := new RectangleStamp(100,100,300,300);
r.Stamp;
while r.w>2 do
begin
r.DecreaseFromCenter(4);
r.Stamp;
end;
end.