Показать сообщение отдельно
  #5  
Старый 15.06.2015, 12:09
icWasya icWasya вне форума
Местный
 
Регистрация: 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;
Ответить с цитированием