unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
type
  TFigure = class
  public
  d,b,c,a,p,x,y,x1,y1,r,size,maxsize: Integer; //òåêóùèå êîîðä. òî÷êè
  Canvas: TCanvas;
  Constructor Create(NewX, NewY,NewSize,NewMaxSize : integer;
                      NewCanvas : TCanvas);
  Procedure Show;
  Procedure Hide;
  Procedure Move;
    destructor destroy; override;
  end;
  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    Label1: TLabel;
    procedure Image1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
  Figure:TFigure;
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Image1Click(Sender: TObject);
begin
end;
{ TFigure }
constructor TFigure.Create(NewX, NewY, NewSize, NewMaxSize: integer;
  NewCanvas: TCanvas);
begin
 inherited Create;
x:=NewX;
y:=NewY;
y1:=1;
x:=250;
y:=250;
Size:=NewSize;
MaxSize:=NewMaxSize;
Canvas:=NewCanvas;
show;
end;
destructor TFigure.destroy;
begin
hide;  inherited destroy;
end;
procedure TFigure.Hide;
begin
     canvas.Pen.Color:=ClBlack;
 Canvas.Brush.Color:=Clblue;
  canvas.Rectangle(x - (a div 2), y - (a div 2),
                           x + (a div 2), y + (a div 2));
end;
procedure TFigure.Move;
begin
end;
procedure TFigure.Show;
var
  c: array [1..4] of TPoint;
  b: integer; // Äëèíà äèàãîíàëè ðîìáà
  d: integer; // Äëèíà äèàãîíàëè êâàäðàòà è äèàìåòð êðóãà
const
  a = 125;
begin
     canvas.Pen.Color:=ClBlack;
 Canvas.Brush.Color:=Clblue;
  canvas.Rectangle(x - (a div 2), y - (a div 2),
                           x + (a div 2), y + (a div 2));
  d := Round(sqrt(2)*a);
  b := Round(sqrt(2)*d);
  c[1].x := x;
  c[1].y := y + (b div 4);
  c[2].x := x - (b div 4);
  c[2].y := y;
  c[3].x := x;
  c[3].y := y - (b div 4);
  c[4].x := x + (b div 4);
  c[4].y := y;
   canvas.Pen.Color:=ClBlack;
 Canvas.Brush.Color:=Clwhite;
 Canvas.Polygon(c);
 canvas.Pen.Color:=Clblack;              //y,x,y+size ,x+size,//
Canvas.Brush.Color:=Clred;
   //Canvas.ellipse(y,x,y+size ,x+size);
   Canvas.ellipse(x-(d div 4), y - (d div 4),x + (d div 4), y+(d div 4) );
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 Figure:=TFigure.Create(Image1.ClientWidth div 8,
  Image1.ClientWidth div 4,
  Image1.ClientWidth div 2 ,
  Image1.ClientWidth,
  Image1.Canvas);
end;
end.