Советы по Delphi

         

Высокоточный таймер


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


Содержание раздела