Časovnik (Timer) je nevizuelna komponenta pomoću koje može da se meri vreme. Ova komponenta periodično generiše događaj OnTimer (prilikom isteka vremena) kad god istekne zadati period vremena, tako da program može sam nešto da uradi a da korisnik ne čini nikakvu akciju.

Svojstvo Interval (integer) određuje koliko često će se generisati neki događaj OnTimer. Podrazumevana vrednost ovog svojstva je 1000 i predstavlja interval od 1 sekunde. Što je ova vrednost manja, događaji OnTimer će se brže generisati.

Ako se svojstvo enabled postavi na True, časovnik je aktivan, a ako je vrednost ovog svojstva False, časovnik je neaktivan, odnosno zaustavljen.

Da se podsetimo:

Funkcija Random geneiše slučajne cele brojeve između 0 i zadate gornje granice. Npr.

Random(100) generiše slučajan broj u intervalu od 0 do 100

Primer1:

clip_image002Na formi se nalazi Timer i jedan Shape (krug). Želimo da se svake sekunde taj krug pomeri na drugo mesto na formi. Znači, treba da se menja svojstvo Left (udaljenost od leve ivice forme) i svojstvo Top (udaljenost od gornje ivice forme).

Na događaj OnTimer komponente Timer treba da se promene ove vrednosti. Koristićemo slučajne brojeve (funkcija Random), ali ćemo ih ograničiti na širinu (clientwidth) i visinu (clientheight) forme.

To bi moglo da se napiše

procedure TForm1.Timer1Timer(Sender: TObject);

begin

shape1.Left:=random(clientwidth);

shape1.Top:=random(clientheight);

clip_image004end;

U ovom slučaju se može desiti da nam se ne vidi ceo krug, a to možemo sprečiti ako smanjimo gornje granice intervala za visinu, odnosno širinu kruga. Ako napišemo

procedure TForm1.Timer1Timer(Sender: TObject);

begin

shape1.Left:=random(clientwidth-shape1.Width);

shape1.Top:=random(clientheight-shape1.Height);

end;

neće se desiti da krug izađe iz forme.

Ako želimo da ubrzamo prikazivanje kruga, smanjimo interval.

Advertisements