Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Глюк с QueryPerformanceFrequency


Страницы:   1 2

PavDimka ©   (2010-08-09 14:18:00) 


program Project2;

uses
 Windows, SysUtils, Dialogs;

Type
 TTimeParams = Packed Record
   Frequency: Int64;
 End;

 TTimeClass = Class
 Strict private
   FTimeParams : TTimeParams;
 Public
   Function GetFrequency: Int64;
   Function GetFrequencyEx: Int64;
 End;

var
 TimeClass: TTimeClass;
 TimeParams: TTimeParams;
 Frequency: Int64;

{ TTimeClass }

function TTimeClass.GetFrequency: Int64;
begin
 QueryPerformanceFrequency(FTimeParams.Frequency);
 Result := FTimeParams.Frequency;
end;

function TTimeClass.GetFrequencyEx: Int64;
var
 Temp: Int64;
begin
 QueryPerformanceFrequency(Temp);
 FTimeParams.Frequency:= Temp;
 Result := FTimeParams.Frequency;
end;

begin
 TimeClass := TTimeClass.Create;

 { 1 }
 QueryPerformanceFrequency(Frequency);
 Showmessage('Тест 1 = ' + FloatToStr(Frequency));
 { 2 }
 QueryPerformanceFrequency(TimeParams.Frequency);
 Showmessage('Тест 2 = ' + FloatToStr(TimeParams.Frequency));
 { 3 }
 Showmessage('Тест 3 = ' + FloatToStr(TimeClass.GetFrequency));
 { 4 }
 Showmessage('Тест 4 = ' + FloatToStr(TimeClass.GetFrequencyEx));

 TimeClass.Free;

 { Результаты процедуры вывода сообщений
 Тест 1 = 2748115
 Тест 2 = 2748115
 Тест 3 = 0
 Тест 4 = 2748115
 И непонятно с чем связан.
 RAD Studio 2010, Windows 7
 }

end.


PavDimka   (2010-08-09 14:21:00) [21]

Сижу и удивляюсь.
Никак понять не могу, что же не так?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо