Wenn wir grad bei Pause sind. Ich würde deine Pause Funktion noch so optimieren,
damit die CPU Auslastung nicht zu hoch ist:
(Nicht unbedingt für obige Fragestellung relevant)
Code:
procedure Pause(time: Integer);
var
t: Cardinal;
begin
t := GetTickCount;
while GetTickCount - t <= time do
begin
Application.ProcessMessages;
Sleep(100);
end;
end;