procedure sleep(ms:cardinal); var i:cardinal; begin i:=GetTickCount; repeat Application.ProcessMessages; until GetTickCount-i>=ms; end;