//ミリ秒レベルの時間の精度を取得します(方法1):
var
T1、T2:INT64;
R1:INT64;
始める
T1:= getTickCount; // Windows APIのカウントを開始します
sleep(1000); {do ...} // Codeを実行するタイミングを実行します
T2:= getTickCount; //終了カウント値を取得します
R1:= T2-T1; //タイミング時間を取得し、ユニットミリ秒(MS)
showmessage(inttostr(r1));
終わり;
//ミリ秒レベルの時間の精度を取得します(方法2):
// dateutils; //参照dateutilsユニットを使用します
var
T1、T2:tdateTime;
R1:INT64;
始める
t1:= now(); //開始時間を取得します
sleep(1000); {do ...} // Codeを実行するタイミングを実行します
t2:= now(); //終了時間を取得します
r1:= secondsbetween(t2、t1); //タイミング時間、ユニット秒を取得します
r1:= millisecondsbetween(t2、t1); //タイミング時間を取得、ユニットミリ秒(MS)
showmessage(inttostr(r1));
終わり;
//注:上記の2つの方法をテストした後、自分でテストした後、0.01秒のタイミング精度しか生成できないようです。
//システムレベルの時間の精度を取得:
var
C1:INT64;
T1、T2:INT64;
R1:ダブル;
始める
QueryPerformanceFrequency(c1); // Windows APIカウント周波数(Intel86:1193180)を返します(システムの高性能周波数カウンターの振動数を1ミリ秒単位で取得します)
queryperformancecounter(t1); // windows api開始カウント値を取得します
sleep(1000); {do ...} // Codeを実行するタイミングを実行します
queryperformancecounter(t2); // endカウント値を取得します
R1:=(T2-T1)/c1; //タイミング時間を取得し、単位秒を取得します
R1:=(T2-T1)/C1*1000; //タイミング時間を取得し、ユニットミリ秒(MS)
R1:=(T2-T1)/C1*1000000; //タイミング時間、ユニットマイクロ秒を取得します
showmessage(floattostr(r1));
終わり;