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