Membuat Timer pada Delphi

Codegratis.wordpress.com. Mari belajar coding dengan mudah dan sederhana. Maaf lama gak ada postingan baru lagi di blog tercinta saya ini, maklum banyak kerjaan yang mesti saya selesaikan. Pada postingan saya kali ini saya akan berbagi tip mengenai membuat “Timer atau Penghitung Waktu Mundur pada Delphi”. Codingnya sangat sederhana sekali kok, hasil dari googling dan coba-coba sana-sini, dan kebetulan saya pas diminta mengerjakan projek untuk billing bilyar, yang disitu harus ada timer untuk mengitung waktu bermain bilyar.
Ok langsung saja kita siapkan bahan-bahanya, halah maksud saya komponen yang digunakan :
 photo timer1_zpsfhp9u9e2.jpg

Nama Object Nama Property Setting
TCombobox CharCase ecUpperCase
Item SIANG

25 SIANG

FREE 1 JAM

Name cpaket
TEdit Enabled False
Name Etimer
TButton1 Caption &Start
Name Bmulai
TButton2 Caption &Keluar
Name Bexit
Timer1 Enabled False
Interval 1000

Disitu saya menggunakan combobox karena pada pool bilyar sering ada paket-paket gitu kalo main bilyar. Baiklah langsung saja kita bedah codingnya…………………..pada gak sabar ya……….

  • Variabel global yang digunakan

Timeout:tdatetime;

  • Uses yang digunakan

Gunakan dateutils untuk fungsi tanggal dan waktu pada delphi

  • Function SecsToHmsStr(ASecs: integer):string;
function SecsToHmsStr(ASecs: integer):string;
begin
Result := Format('%2d:%2.2d:%2.2d',[ASecs div 3600, ASecs mod 3600 div 60, ASecs mod 3600 mod 60]);
end;
  • Procedure TForm1.bexitClick
procedure TForm1.bexitClick(Sender: TObject);
begin
if bexit.Caption='&Keluar' then
  close
else
begin
  bmulai.Caption:='&Start';
  bexit.Caption:='&Keluar';
  cpaket.Text:='';
  etimer.Clear;
end;
end;
  • Procedure TForm1.bmulaiClick
procedure TForm1.bmulaiClick(Sender: TObject);
begin
if bmulai.Caption='&Start' then
begin
  if trystrtotime(etimer.Text, timeout) then
  begin
    timeout:=now+timeout;
    timer1.Enabled:=true;
    bmulai.Caption:='&Pause';
    bexit.Caption:='&Reset';
    etimer.Text:= SecsToHmsStr(SecondsBetween(Now, TimeOut));
  end
  else
    ShowMessage('Error in time format');
end
else
begin
  bmulai.Caption:='&Start';
  bexit.Caption:='&Keluar';
  timer1.Enabled:=false;
end;
end;
  • Procedure TForm1.cpaketChange
procedure TForm1.cpaketChange(Sender: TObject);
begin
if cpaket.Text='SIANG' then
  etimer.Text:='01:00:00'
else
if cpaket.Text='25 SIANG' then
  etimer.Text:='02:00:00'
else
if cpaket.Text='FREE 1 JAM' then
  etimer.Text:='03:00:00'
else
  etimer.Text:='';
end;
  • Procedure TForm1.FormShow
procedure TForm1.FormShow(Sender: TObject);
begin
cpaket.Text:='';
etimer.Clear;
end;
  • Procedure TForm1.Timer1Timer
procedure TForm1.Timer1Timer(Sender: TObject);
begin
etimer.Text:= SecsToHmsStr(SecondsBetween(Now, TimeOut));
if Now > Timeout then Timer1.Enabled := False;
end;

Nah sedikit dan simple kan codingnya, monggo dicoba. Is everything ok maka akan running weel seperti dibawah ini :

timer2 photo timer2_zpsrubruxoo.jpg

Jika ada yang kurang pas atau mau ditambahkan monggo komen. Selamat mencoba.

Iklan