Artikel ini menjelaskan secara singkat metode Delphi dalam mengimplementasikan hitungan mundur tingkat milidetik beserta contohnya. Secara umum, jumlah getaran penghitung frekuensi kinerja tinggi sistem dalam satu milidetik dapat diperoleh Jika jumlah getaran jam melebihi 10 milidetik, tampilan edit3 akan disegarkan untuk menampilkan waktu sebenarnya yang telah berlalu sejak awal penghitungan. untuk waktu penghitungan. Kode implementasi spesifiknya sebagai berikut:
unit Unit1;antarmukamenggunakan Windows, Pesan, SysUtils, Kelas, Grafik, Kontrol, Formulir, Dialog, ExtCtrls, StdCtrls, mmsystem;ketik TForm1 = class(TForm) Edit1: TEdit; : Tombol T; Pengatur Waktu1: Pengatur Waktu; Label1: Label2; TLabel; Label3: TLabel; prosedur FormCreate(Pengirim: TObject); prosedur Button1Click(Pengirim: TObject); prosedur Timer1Timer(Pengirim: TObject); prosedur Button2Click(Pengirim: TObject); var Form1: TForm1; acttime1,acttime2:kardinal; htimeid:integer; iten:integer; protimecallback:tfntimecallback; prosedur timeproc(utimerid, umessage: uint; dwuser, dw1, dw2: dword) stdcall; prosedur proendcount;implementasi{$R *.DFM}//timesetevent fungsi panggilan balik proendcount ; mulai acttime2:=gettickcount-acttime1; form1.button2.enabled :=false; form1.button1.enabled :=benar; form1.timer1.enabled :=false; smmcount:=60; prosedur timeproc(utimerid, pesan: uint; dwuser, dw1, dw2: dword) stdcall;mulai form1.edit2.teks:=floattostr(smmcount); smmcount:=smmcount-0.01;akhir;prosedur TForm1.FormCreate(Pengirim: TObject);mulai button1.caption :='Mulai hitung mundur'; :='Akhiri hitungan mundur'; button2.enabled :=false; button1.enabled :=true; timer1.enabled :=false; smmcount:=60; stimercount:=60; spcount:=60;akhir;prosedur TForm1.Button1Click(Pengirim: TObject);var lgtick1,lgtick2,lgper:tlargeinteger; diaktifkan :=benar; tombol1.diaktifkan :=salah; timer1.enabled :=true; timer1.interval :=10; protimecallback:=timeproc; htimeid:=timesetevent(10,0,protimecallback,1,1); di Jumlah getaran dalam satu frekuensi kinerja kueri milidetik(ftemp:=lgper/1000; iten:=trunc(ftemp*10); queryperformancecounter(lgtick1); lgtick2:=lgtick1; spcount:=60; sementara spcount>0 dimulai query performancecounter(lgtick2); //Jika jumlah getaran jam melebihi 10 milidetik, segarkan tampilan edit3 if lgtick2 - lgtick1 > lalu mulai lgtick1 := lgtick2; spcount := spcount - 0,01; floattostr(spcount); aplikasi.prosespesan; akhir; akhir;akhir;prosedur TForm1.Timer1Timer(Pengirim: TObject);mulai edit1.text := floattostr(stimercount:=stimercount-0.01;end;prosedur TForm1.Button2Click( Pengirim: TObject);mulai proendcount; //Menampilkan waktu aktual yang telah berlalu dari awal penghitungan hingga penghitungan showmessage('waktu aktual yang telah berlalu'+inttostr(acttime2)+'milidetik');end;end.