Креирати апликацију у delphi-ју у којој се по форми исцртавају кругови или елипсе, у зависности од избора из менија. Брзина приказивања на форми се регулише преко компоненте spinedit, што је већа вредност, брже се приказују. У насловној линија прозора треба да се прикаже број приказаних облика. Кликом на форму се зауставља/покреће приказивање облика. Боја сваког приказаног облика је увек различита (случајни избор) – информатичари.

image image

               елипсе                                                          кругови

Решење:

За овај задатак нам је потребна компонента Timer. То је невизуелна компонента која периодично генерише догађај onTimer (приликом истека времена) кад год истекне задати период времена. То омогућује да програм у тим тренуцима нешто уради, а да корисник не предузима никакву акцију.

Својство Interval одређује колико често ће се генерисати догађај onTimer. Подразумевана вредност 1000 означава интервал од једне секудне.

Код за горе урађени пример, наравно може и на друге начине:

var
Form1: TForm1; br,ck:integer; ind:char;

implementation

{$R *.dfm}

procedure TForm1.elipse1Click(Sender: TObject);
begin
br:=0;
ck:=1;
ind:=’e’;
repaint;

end;

procedure TForm1.elipse2Click(Sender: TObject);
begin
ck:=1;
ind:=’k’;
br:=0;
repaint;

end;

procedure TForm1.FormClick(Sender: TObject);
begin
ck:=ck+1;
if ck mod 2=0 then
timer1.Enabled:=false
else
begin
timer1.Enabled:=true;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=false;
br:=0;
ck:=1;
end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
timer1.Interval:=round(1000/(spinedit1.Value +1) );
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var x1,x2,y1,y2,vis,sir:integer;
begin
if ind=’e’ then
begin
timer1.Enabled:=true;
randomize;

x1:=random(clientWidth);
y1:=random(clientHeight);
vis:=random(100)+30+y1;
sir:=random(100)+30+x1;
canvas.Brush.Color:=rgb(random(255),random(255),random(255));
canvas.Ellipse(x1,y1,sir,vis);
br:=br+1;
form1.Caption:=inttostr(br);
end
else
if ind=’k’ then
begin
timer1.Enabled:=true;
randomize;

x1:=random(clientWidth);
y1:=random(clientHeight);

  canvas.Brush.Color:=rgb(random(255),random(255),random(255));
canvas.Ellipse(x1-15,y1-15,x1+15,y1+15);
br:=br+1;
form1.Caption:=inttostr(br);
end;

end;

end.

Advertisements