Le sleep bloque le traitement des messages d'où le ralentissement.
Pour temporiser, utilise peut-être GetTickCount de la façon suivante:
1 2 3 4 5 6 7 8 9
| procedure delay(vTime: integer);
var
Tc: Cardinal;
begin
Tc := GetTickCount;
repeat
Application.ProcessMessages;
until Cardinal(GetTickCount - Tc) > vTime;
end; |
delay(1000) représente à peu près une seconde.
1 2 3 4 5 6 7 8 9 10 11 12
| for i := 1 to CoordMax do
begin
...
// calculs coords... x1, y1
...
MonImage.Left := x1;
MonImage.Top := y1;
delay(1);
end; |
Augmente peut-être la valeur de delay.
Partager