не замечал, функция гуд. а задержку в игре я реализовываю вот так, отлично работает:
var
lastTime: integer;
ups: integer;
...
ups := 25;
lastTime := GetRelativeTimeMs - 1000 div ups;
...
GameQuit := false;
repeat
while GetRelativeTimeMs - lastTime >= (1000 div ups) do
begin
Update;
lastTime := lastTime + (1000 div ups);
end;
UpdateButtons;
Draw;
repaint;
until GameQuit;