Sleep() friert dein Programm soweit ich mich erinnere eine, also kommte es zu keinem writeln usw., eine Art Delay-Funktion wäre evtl. sinnvoller:
Delphi-Quellcode:
procedure Delay(ms : Cardinal);
Var
TickCount : dword;
M : TMsg;
Begin
TickCount := GetTickCount;
repeat
If PeekMessage(M, 0, 0, 0, pm_Remove) then
Begin
TranslateMessage(M); DispatchMessage(M);
End;
until not ((GetTickCount - TickCount) < ms);
End;