procedure TForm1.Delay(msecs:integer); var FirstTickCount:longint; begin FirstTickCount:=GetTickCount; repeat Application.ProcessMessages; {allowing access to other controls etc.} until ((GetTickCount-FirstTickCount) >= Longint(msecs));
var NumSec SmallInt; StartTime: LongInt; begin StartTime := now; repeat Application.ProcessMessages; until Now > StartTime + NumSec * (1/24/60/60); end;