
15.06.2015, 12:09
|
Местный
|
|
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
|
|
Например Окружность
Код:
type
TCircle=class(TFigura)
private
FO:TPoint;
FR:Double;
public
procedure DrawTo(Canvas:TCanvas);override;
procedure ToListItem(Item:TListItem);override;
function ToString:String;override;
function Verirification:Boolean;override;
function Perimetr:Double;override;
constructor Create(AName:String);
property Radius:Double read FR write FR;
property center:TPoint read FO write FO;
end;
procedure TCircle.DrawTo(Canvas:TCanvas);
var R:integer;
begin
R:=Round(FR);
Canvas.Ellipce(FO.X-R,FO.Y-R,FO.X+R,FO.Y+R);
end;
procedure TCircle.ToListItem(Item:TListItem);
begin
Item.Caption:=Name;
Item.SubItems.Clear;
Item.SubItems.Add('Круг');
if Verirification then
Item.SubItems.Add('может быть такой!')
else
Item.SubItems.Add('Не может быть');
Item.SubItems.Add(Format('%F',[Perimetr]));
Item.SubItems.Add(Format('%F',[Radius]));
Item.SubItems.Add(Format('%d:%d',[FO.X,FO.Y]));
end;
function TCircle.ToString:String;
begin
Result:=Name + ' Круг ';
if Verirification then
Result:=Result+'может быть такой!'
else
Result:=Result+'Не может быть';
Result:=Result+Format('%F',[Perimetr]);
Result:=Result+Format('%F',[Radius]));
Result:=Result+Format('%d:%d',[FO.X,FO.Y]);
end;
function TCircle.Verirification:Boolean;
begin
Result:=FR>0;
end;
function TCircle.Perimetr:Double;
begin
Result:=Radius*2*Pi;
end;
constructor TCircle.Create(AName:String);
begin
inherited(AName);
end;
|