Высокоточный таймер
{ Имя файла: HRTimer.PAS V1.00
Создан: Апр 17 1997, 06:40, автор John Mertus
Обновлен #6: Окт 12 1997, 10:56 John Mertus
Оболочка для таймера высокой точности при создании приложений под
Win95/WinNT
Var
HRT : THRTimer
HRT := THRTimer.Create;
HRT.StartTimer; Сброс таймера в ноль
HRT.ReadTimer; Возвращает отсчитанное время в миллисекундах
начиная со времени старта
HRT.Free;
Список изменений
Версия 1.00 - Первый выпуск
}{-----------------Модуль HRTimer-------------------John Mertus Апрель 97---} Unit HRTimer;
{-------------------Объявления-------------------------------} interface
Uses Windows; Type THRTimer = Class(TObject)
Constructor Create;
Function StartTimer : Boolean;
Function ReadTimer : Double;
private
StartTime : Double;
ClockRate : Double;
public
Exists : Boolean;
End;
{--------------------------Реализация-----------------------------------} implementation
{------------------Create-------------------------John Mertus----Мар 97-} Constructor THRTimer.Create;
{ Получаем точное системное время и сохраняем его для дальнейшего } { использования. } { } {***********************************************************************} Var QW : TLargeInteger;
BEGIN Inherited Create;
Exists := QueryPerformanceFrequency(QW);
ClockRate := QW.QuadPart;
END;{------------------StartTimer---------------------John Mertus----Мар 97-} Function THRTimer.StartTimer : Boolean;
{ Получаем точное системное время и сохраняем его для дальнейшего } { использования. } { } {***********************************************************************} Var QW : TLargeInteger;
BEGIN Result := QueryPerformanceCounter(QW);
StartTime := QW.QuadPart;
END;{-------------------ReadTimer---------------------John Mertus----Мар 97---} Function THRTimer.ReadTimer : Double;
{ Получаем точное системное время и сохраняем его для дальнейшего } { использования. } { } {***********************************************************************} Var ET : TLargeInteger;
BEGIN QueryPerformanceCounter(ET);
Result := 1000.0*(ET.QuadPart - StartTime)/ClockRate;
END;end. |