德尔福6之后的GetTickCount在哪里?

时间:2011-10-28 05:11:15

标签: delphi indy

我正在尝试从Delphi 6迁移到Delphi 2010,但我在Delphi 2010中找不到GetTickCount函数。我有IdGlobalSysUtilsDateUtils在我的使用条款中。

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

它给了我一个错误:

  

未声明的标识符:GetTickCount

有什么替代方案?

4 个答案:

答案 0 :(得分:8)

GetTickCount功能是Windows部门的一部分。

答案 1 :(得分:6)

正如您发现的那样,您使用的GetTickCount功能由IdGlobal部门提供。它与Windows API函数同名。 您正在使用的功能现在命名为Ticks将Windows添加到您的uses子句以获取API函数,或者将代码更改为使用新名称。

2004年的某个时候看起来名称发生了变化。你应该努力让你的Indy图书馆保持最新状态。不要只使用Delphi附带的版本 - 它甚至可能在您获得它之前已经过时了。始终从Indy的源代码管理中下载最新版本。

答案 2 :(得分:0)

GetTickCount不依赖于Delphi的版本,因为它是一个WinAPI函数,它也必须在Delphi 2010中,也在Delphi XE和XE2中。

编辑:将Windows单位添加到您的使用部分。

答案 3 :(得分:0)

使用Lazarus 1.0.12,下一个命令在windows中正常工作:

使用...... Windows ...

这是代码:

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

 WriteLn( 'Time elapsed: ' + IntToStr(elapsedtime) + ' miliseconds');