{ Имя файла: 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. |