Пример на создание, присваивание и уничтожение динамических объектов.

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.