unit VirSqr; interface uses VirPoint, Graphics, Graph; type //****************************************************************************** // odvozena trida od Point, definuje jeden ctverec //****************************************************************************** TVirSqr = class (TVirPoint) protected Site : Integer; public constructor Create(Xi, Yi, Sitei : Integer); procedure Grow(E: Integer); virtual; procedure Move; override; procedure Draw; override; end; implementation //****************************************************************************** // //****************************************************************************** constructor TVirSqr.Create(Xi, Yi, Sitei: Integer); begin inherited Create(Xi, Yi); Site := Sitei; end; //****************************************************************************** // //****************************************************************************** procedure TVirSqr.Grow (E: Integer); begin Site := Site + E; if Site > 50 then Site := 0; end; procedure TVirSqr.Move; begin inherited Move; Grow(random(3)); end; //****************************************************************************** // //****************************************************************************** procedure TVirSqr.Draw; begin Graph.Canvas.Pen.Color:=$00ff00; Graph.Canvas.Rectangle(X, Y, X+Site, Y+Site); end; end.