Belirli zaman aralıklarında veya belirli bir süre içerisinde çalışmasını istediğiniz her hangi bir kod, olay varsa, istenilen bu işi yapmamız için gereken bileşen timer bileşenidir. Eğer her saniye çalışmasını istediğiniz bir kod varsa bunu timer bileşeninin OnTimer olayına yazarız. Ardından bileşenin Interval özelliğini 1000 olarak ayarlarsak yazdığımız kod her saniye işletilir.
Enabled Özelliği: Timer bileşeninin kodları çalıştırıp çalıştırmayacağına karar verdiği özelliğidir. Eğer enabled özelliği true ise timer istenilen sürelerde kodları çalıştırır. Enabled özelliği false ise timer çalışmaz.
Aşağıdaki kodlarda timer bileşenin enabled özelliği true ve false olarak değiştiriliyor.
Timer1.Enabled := True; // timer aktif hale getiriliyor
Timer1.Enabled := False; // timer pasif hale getiriliyor
Interval Özelliği: Bu özellik timer bileşeninin hangi aralıklarla işletileceğini belirten özelliğidir. Eğer Intervali 1000 olarak ayarlanırsa timer her saniye işleyecektir. Yani 1000 değeri 1 saniye anlamına gelmektedir. Eğer Interval değeri 500 olursa timer saniyede 2 kez işleyecektir.
Timer İle Kronometre Yapımı
Delphide timer kullanarak krometre yapımını aşağıdaki örnekte olduğu gibi gerçekleştirebiliriz. Uygulama için forma 3 adet button (başla/devam, durdur ve sıfırlamak için), 1 adet label (süreyi yazmak için) ve 1 tanede timer bileşeni (süreyi kontrol etmek için) eklenir.
Bileşenlerin isimlerini aşağıdaki şekilde değiştirelim.
Button: btnBasla
Button: btnDurdur
Button: btnSifirla
Label: lblSure
Timer: tmrZaman
Timer bileşenin Interval özelliği 100 olarak ayarlanırsa kronometre her saniyeyi 10 eşit parçaya bölerek çalışacaktır.
var
sure : Integer;
procedure TForm1.tmrZamanTimer(Sender: TObject);
var
sn, ss :Integer;
begin
inc(sure); // sure := sure + 1 ile aynıdır. Sure değişkeninin değerini 1 artırır
sn := (sure div 10); // geçen sürenin 10a bölümünden bölümü alır ve saniyeyi bulur
ss := (sure mod 10); // geçen sürenin 10a bölümünden kalanı alır ve saliseyi bulur
lblSure.Caption := Inttostr(sn)+‘.’+Inttostr(ss); // saniye ve saliseyi birleştirerek labela yazar
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
sure := 0; // form oluşturulurken sure değişkenini sıfırlar
end;
procedure TForm1.btnBaslaClick(Sender: TObject);
begin
tmrZaman.Enabled := true; // timer bileşenini aktif hale getirir
end;
procedure TForm1.btnDurdurClick(Sender: TObject);
begin
tmrZaman.Enabled := false; // timer bileşenini pasif hale getirir
end;
procedure TForm1.btnSifirlaClick(Sender: TObject);
begin
tmrZaman.Enabled := false; // timer bileşenini durdurur
sure := 0; // süreyi sıfırlar
lblSure.Caption := ’0′; // süreyi labela yazar
end;