Unit FigDemo1;
Uses…,Figures,FigArc;
var FigKey:char;
Ang1_ini,Ang2_ini,R_ini,X_ini,Y_ini:Integer; newX,newY,newR:Integer;
pFigure:tpDot;
outside:Boolean;
begin
OutTextXY('type of figure:0-dot,1-circle,2-arc,0,10);
Readln(FigKey);
OutTextXY('Coordinate X=',0,20);Readln(X_ini);
OutTextXY('Coordinate Y=',0,30);Readln(Y_ini);
case FigKey of
'0':pFigure:=New(tpDot,Init(X_ini,Y_ini));
'1':begin
OutTextXY('Radius R=',0,40);Readln(R_ini);
pFigure:=New(tpCircle,Init(X_ini,Y_ini,R_ini));
end;
else
begin
OutTextXY('Radius R=',0,40);Readln(R_ini);
OutTextXY('Start angle=',0,50);Readln(Ang1_ini);
OutTextXY('End angle=',0,60);Readln(Ang2_ini);
pFigure:=New(tpArc,Init(X_ini,Y_ini,R_ini,ang1_ini,ang2_ini));
end;
end{/case};
pFigure^.Show;
repeat
OutTextXY('New X=',0,90);readln(NewX);
OutTextXY('New Y=',0,80);readln(NewY);
OutSide:=(NewX<0)OR(NewX>639)OR(NewY<100)OR(NewY>479));
pFigure^.MoveTo(NewX,NewY)
until Outside;
OutTextXY('End of work.Press <Enter>',0,90);Readln;
Dispose(pFigure,Done)
end.