Salut!

J'ai un problème de "multitâche" avec un code du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{----------------------------------------------------------------}
procedure Boucle(Lab: TLabel);
Var x: Integer;
Begin
  Repeat
    x := StrToIntDef(Lab.Caption, 0) + 1;
    Lab.Caption := IntToStr(x);
    Application.ProcessMessages;
    Sleep(200);
  Until(x > 500);
End;
 
{----------------------------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
begin
 If (Label1.Caption = 'Label1') Then Begin Boucle(Label1); Exit; End;
 If (Label2.Caption = 'Label2') Then Begin Boucle(Label2); Exit; End;
end;
La 1ère boucle se lance bien lorsqu'on clique sur le bouton, mais se bloque lorsqu'on lance la 2ème boucle... Je pensais qu'Application.ProcessMessages suffisait dans ce cas... Existe-t-il une solution pour que les 2 boucles fonctionnent simultannément sans utiliser les threads ?

Sinon, quelle est le code le plus simple pour résoudre ce problème ?

Merci d'avance.