在linux endtime返回结果0
。它应该是给定睡眠功能的返回数字(以毫秒为单位)。在GUI上的标签上显示0
。
这是代码:
var starttime: longint;
var endtime: longint;
function GetTickCount : DWORD;
begin
{$IFDEF MSWINDOWS}
Result := Windows.GetTickCount mod High(LongInt);
{$ELSE}
Result := GetTickCount mod High(LongInt);
{$ENDIF}
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
starttime:=getTickCount;
// something do...
Sleep(1500); // sleep in miliseconds, works!
endtime:=getTickCount-starttime;
Label1.Caption:=inttostr(endtime); // returns 0 ?
end;
答案 0 :(得分:0)
gettickcount函数的{$ else}中的gettickcount被解释为过程的返回值。 (结果在Delphi中)
根据模式,这可能会导致永久递归
解决方案:就像在Windows案例中一样,使用unitname限定
{$else}
Result := SysUtils.GetTickCount mod High(LongInt);