Delphi World - Высокоточный таймер
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Высокоточный таймер

Автор: John Mertus


{

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

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования