La boucle
while permet de répéter un portion de code (fnd) plusieurs fois de suite (sans interruption), tant qu'une condition est vraie. Sa forme générale est la suivante :
while Condition do
begin
Instructions;
end;
On peut, en quelque sorte, la traduire avec des
if comme ceci :
// DébutWhile
if not Condition do
// Saute à FinWhile
Instructions;
// Saute à DébutWhile
// FinWhile
Généralement, on veut que la boucle s'arrête au bout d'un moment. Par exemple, cette boucle fait clignoter le joueur 5 fois :
var
I: Integer;
begin
I := 0;
while I < 5 do
begin
Player.Hide;
Sleep(100);
Player.Show;
Sleep(100);
Inc(I);
end;
end;
Note l'utilisation de
Inc(I), qui va augmenter I de 1 à chaque tour de boucle. Ceci finira donc par rendre fausse la condition
I < 5, ce qui arrêtera la boucle.
Maintenant, je ne pense pas qu'une boucle
while soit adaptée à ton problème. En effet, une boucle
while doit rester dans le cadre d'une méthode (un
on..do).
Ce que tu veux, il me semble, c'est un événement récurrent, qui se produit par exemple toutes les 500 ms. Pour ça il faut utiliser les timers, avec des ScheduleNotificationMsg comme dans les MovingMonsters.