// احصل على دقة زمنية على مستوى الميلي ثانية (الطريقة 1):
var
T1 ، T2: int64 ؛
R1: int64 ؛
يبدأ
T1: = getTickCount ؛ // ابدأ في حساب Windows API
Sleep (1000) ؛ {do ...} // قم بتنفيذ الكود المراد توقيته
T2: = getTickCount ؛ // احصل على قيمة عدد النهاية
R1: = T2-T1 ؛ // احصل على وقت التوقيت ، وحدة ميلي ثانية (MS)
ShowMessage (inttost (R1)) ؛
نهاية؛
// احصل على دقة زمنية على مستوى المللي ثانية (الطريقة 2):
// استخدم DateUtils ؛ // وحدة مرجع DateUtils
var
T1 ، T2: tdatetime ؛
R1: int64 ؛
يبدأ
T1: = الآن () ؛ // احصل على وقت البدء
Sleep (1000) ؛ {do ...} // قم بتنفيذ الكود المراد توقيته
T2: = الآن () ؛ // احصل على وقت الانتهاء
R1: = SecondSbeting (T2 ، T1) ؛ // احصل على وقت التوقيت ، الوحدة الثانية (S)
R1: = millisecondsbetween (T2 ، T1) ؛ // الحصول على وقت التوقيت ، الوحدة ميلي ثانية (MS)
ShowMessage (inttost (R1)) ؛
نهاية؛
// ملاحظة: بعد اختبار الطريقتين أعلاه ، يبدو أنه يمكنهما فقط إنتاج 0.01 ثانية من دقة التوقيت بعد الاختبار بنفسي.
// احصل على دقة الوقت على مستوى النظام:
var
C1: int64 ؛
T1 ، T2: int64 ؛
R1: مزدوج ؛
يبدأ
QueryPerformanceFrequency (C1) ؛ // Windows API إرجاع تردد العد (Intel86: 1193180) (يحصل على عدد من اهتزازات عداد تردد الأداء عالي الأداء في النظام في واحد مللي ثانية واحدة)
QueryPerformanceCounter (T1) ؛ // Windows API Get the Start Count Value
Sleep (1000) ؛ {do ...} // قم بتنفيذ الكود المراد توقيته
QueryperFormancecounter (T2) ؛ // احصل على قيمة عدد النهاية
R1: = (T2-T1)/C1 ؛ // احصل على وقت التوقيت ، الوحدة الثانية (S)
R1: = (T2-T1)/C1*1000 ؛ // احصل على وقت التوقيت ، وحدة ميلي ثانية (MS)
R1: = (T2-T1)/C1*1000000 ؛ // احصل على وقت التوقيت ، الوحدة المجهرية
ShowMessage (floattostr (R1)) ؛
نهاية؛