unit drawing;

{$mode objfpc}{$H+}

interface

uses
	Classes, Controls, Graphics;

type TDrawing = class(TGraphicControl)
	private
		FExtent: integer;
	public
		constructor Create(theOwner: TComponent; anExtent: integer); overload;
		property Extent: integer read FExtent write FExtent;
	end;

	TSquare = class(TDrawing)
	public
		procedure Paint; override;
	end;

	TCircle = class(TDrawing)
	public
		procedure Paint; override;
	end;

implementation

constructor TDrawing.Create(theOwner: TComponent; anExtent: integer);
begin
	inherited Create(theOwner);
	FExtent := anExtent;
	Width := FExtent;
	Height := FExtent;
end;

{TCircle}
procedure TCircle.Paint;
begin
	Canvas.Brush.Color := clBtnFace;
	Canvas.FillRect(0, 0, FExtent, FExtent);
	Canvas.Brush.Color := clYellow;
	Canvas.Ellipse(0, 0, FExtent, FExtent);
end;

{TSquare}
procedure TSquare.Paint;
begin
	Canvas.Brush.Color := clSilver;
	Canvas.FillRect(0, 0, FExtent, FExtent);
	Canvas.Rectangle(0, 0, FExtent, FExtent);
end;

end.

