توضح هذه المقالة بإيجاز طريقة دلفي لتنفيذ العد التنازلي على مستوى المللي ثانية مع الأمثلة. بشكل عام، يمكن الحصول على عدد اهتزازات عداد التردد عالي الأداء للنظام خلال مللي ثانية واحدة إذا تجاوز عدد اهتزازات الساعة 10 مللي ثانية، فسيتم تحديث شاشة التحرير3 لعرض الوقت الفعلي المنقضي من بداية العد. إلى وقت العد رمز التنفيذ المحدد على النحو التالي:
الوحدة Unit1؛ تستخدم واجهات Windows والرسائل وSysUtils والفئات والرسومات وعناصر التحكم والنماذج ومربعات الحوار وExtCtrls وStdCtrls وmmsystem؛ اكتب TForm1 = class(TForm) Edit1: TEdit; Edit3: TEdit; : TButton؛ TLabel؛ Label3: TLabel؛ الإجراء FormCreate(Sender: TObject); الإجراء Button1Click(Sender: TObject); الإجراء Timer1Timer(Sender: TObject); فار Form1: TForm1; acttime2:smmcount,stimercount,spcount:single; htimeid:integer; iten:integer; protimecallback:tfntimecallback; الإجراء timeproc(utimerid, umessage: uint; dwuser, dw1, dw2: dword) stdcall الإجراء proendcount;implementation{$R *.DFM}//timesetevent إجراء وظيفة رد الاتصال ; ابدأ acttime2:=getticcount-acttime1; form1.button2.enabled :=false;form1.button1.enabled :=true;form1.timer1.enabled :=false;=60; الإجراء timeproc(utimerid, umessage: uint; dwuser, dw1, dw2: dword) stdcall;beginform1.edit2.text:=floattostr(smmcount);smmcount:=smmcount-0.01;end;procedure TForm1.FormCreate(Sender: TObject);begin Button1.caption :='Start countdown Button2.caption :='انتهاء العد التنازلي'; timer1.enabled :=false smmcount:=60; spcount:=60;end;procedure TForm1.Button1Click(Sender: TObject);var lgtick1,lgtick2,lgper:tlargeinteger; ممكّن :=صحيح، Button1.enabled :=خطأ؛ timer1.enabled :=true; timer1.interval :=10; protimecallback:=timeproc; htimesetevent(10,0,protimecallback,1,1); at عدد الاهتزازات في المللي ثانية queryperformancefrequency(lgper:=lgper/1000 iten:=trunc(ftemp*10); queryperformancecounter(lgtick1); spcount:=60; بينما يبدأ spcount>0 queryperformancecounter(lgtick2); ابدأ lgtick1 := lgtick2;= spcount - 0.01; floattostr(spcount); application.processmessages; end;end;procedure TForm1.Timer1Timer(Sender: TObject);beginedit1.text := floattostr(stimercount:=stimercount-0.01;end;procedure TForm1.Button2Click( المرسل: TObject);begin proendcount; // عرض الوقت الفعلي المنقضي من بداية العد حتى العد showmessage('الوقت المنقضي الفعلي'+inttostr(acttime2)+'ملي ثانية');end;end.