{ Имя файла: HRTimer.PAS V1.00Создан: Апр 17 1997, 06:40, автор John MertusОбновлен #6: Окт 12 1997, 10:56 John Mertus Оболочка для таймера высокой точности при создании приложений подWin95/WinNT VarHRT : 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; privateStartTime : Double;ClockRate : Double; publicExists : 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. |