1

スポーツ競技のタイマーを 10 秒単位で表示する必要があります。TTimer の OnTimer イベントを使用してこれを行いました。間隔は 100 に設定されています。私のルーチンは現在の min:sec.10th (例: 02:45.7 ) を正しく表示しますが、comp. 通常の時計に。

Delphi XE2 (または XE3) で時間精度タイマーを取得するより良い方法はありますか?

4

1 に答える 1

2

タイマーを使用してクロックの現在の値を表示できますが、別の方法を使用して経過時間を計算します。

Windows タイマーは正確な時間ではないことを知っておく必要があります。また、100 ミリ秒ごとに経過するように設定したとしても、OnTimer イベントを発生させるのにさらに時間がかかる可能性があり、何らかの理由で 2 回以上前に経過すると、いくつかの間隔を見逃す可能性さえあります。あなたのアプリケーションはそれを処理します。

たとえば、システムの高解像度パフォーマンス カウンターを使用して、ナノ秒の精度で時間を追跡できます。

また、Delphi TStopwatchクラスを使用することもできます。このクラスは、システム コールをカプセル化し、マシンで高解像度パフォーマンス カウンタを使用できない場合に他のメソッド(GetTickCount)にフォールバックします。

また、高解像度パフォーマンス カウンターを使用して経過時間を正確に測定する方法delphi.about.com の記事もご覧ください。

于 2013-01-16T04:07:36.860 に答える