unit main_program; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Graph, VirPoint, VirCircle, VirSqr; type TForm1 = class(TForm) Panel1: TPanel; GroupBox1: TGroupBox; GroupBox2: TGroupBox; Timer1: TTimer; Image1: TImage; AddPoint: TButton; AddCircle: TButton; AddSqr: TButton; Button1: TButton; procedure FormCreate(Sender: TObject); procedure AddPointClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure AddCircleClick(Sender: TObject); procedure AddSqrClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ProceduraUkonceni(Sender: TObject); private Virtualni : TList; public end; var Form1: TForm1; implementation {$R *.dfm} //****************************************************************************** procedure TForm1.FormCreate(Sender: TObject); begin Graph.Canvas := Self.Image1.Canvas; Virtualni := TList.Create(); end; procedure TForm1.AddPointClick(Sender: TObject); var Newitem : TVirPoint; begin Newitem:=TVirPoint.Create(random(Image1.Width),random(Image1.Height)); Virtualni.Add(newitem); Caption:='Počet objektů: '+inttostr(virtualni.Count); end; procedure TForm1.AddCircleClick(Sender: TObject); var Newitem : TVirPoint; begin Newitem:=TVirCircle.Create(random(Image1.Width),random(Image1.Height),random(50)); Virtualni.Add(newitem); Caption:='Počet objektů: '+inttostr(virtualni.Count); end; procedure TForm1.AddSqrClick(Sender: TObject); var Newitem : TVirSqr; begin Newitem:=TVirSqr.Create(random(Image1.Width),random(Image1.Height),random(50)); Virtualni.Add(newitem); Caption:='Počet objektů: '+inttostr(virtualni.Count); end; procedure TForm1.Timer1Timer(Sender: TObject); var I : Integer; begin // vycisteni obrazovky Image1.Canvas.Pen.Color:=$FFFFFF; Image1.Canvas.Brush.Color:=$FFFFFF; Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height); // vykresleni objektu for I:=0 to Virtualni.Count-1 do begin TVirPoint(Virtualni.Items[I]).Move; TVirPoint(Virtualni.Items[I]).Draw; end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var I : Integer; begin for I:=0 to Virtualni.Count-1 do begin TVirPoint(Virtualni.Items[I]).Free; end; Virtualni.Free; end; procedure TForm1.ProceduraUkonceni(Sender: TObject); begin close end; end.