Где находится GetTickCount после Delphi 6? - PullRequest
4 голосов
/ 28 октября 2011

Я пытаюсь перейти с Delphi 6 на Delphi 2010, но не могу найти функцию GetTickCount в Delphi 2010. У меня есть IdGlobal, SysUtils и DateUtils в предложении использования.

var
  RefreshTick : Cardinal;
begin
  RefreshTick := GetTickCount;
end;

выдает ошибку:

Необъявленный идентификатор: GetTickCount

Какая альтернатива этому?

Ответы [ 4 ]

8 голосов
/ 28 октября 2011

Функция GetTickCount является частью устройства Windows.

6 голосов
/ 28 октября 2011

Как вы уже обнаружили, функция GetTickCount, которую вы использовали, была предоставлена ​​модулем IdGlobal. У него было то же имя, что и у функции Windows API. Функция, которую вы использовали, теперь называется Ticks. Либо добавьте Windows к предложению использования, чтобы получить функцию API, либо измените код, чтобы использовать новое имя вместо этого.

Похоже, что смена имени произошла где-то в 2004 году. Вам следует постараться быть более внимательным, чтобы поддерживать свою библиотеку Indy в актуальном состоянии. Не просто используйте версию, которая поставляется с Delphi - возможно, она устарела еще до того, как вы ее получили. Всегда загружайте последнюю версию из системы контроля версий Indy.

0 голосов
/ 30 ноября 2013

В Lazarus 1.0.12 следующие команды работали нормально в windows:

Использует ... Windows ...

вот код:

Var
  initialtime, elapsedtime: DWord;
  .
begin
  .
 initialtime := Windows.GetTickCount;
  .
 elapsedtime := Windows.GetTickCount - initialtime;

 WriteLn( 'Time elapsed: ' + IntToStr(elapsedtime) + ' miliseconds');
0 голосов
/ 28 октября 2011

GetTickCount не зависит от версии Delphi, потому что это функция WinAPI, и она должна присутствовать и в Delphi 2010, а также в Delphi XE и XE2.

РЕДАКТИРОВАТЬ: добавить модуль Windows в свой раздел использования.

...