Bonjour à tous,
J'ai un traitement très très long (extraction de donnée d'une base de donnée) qui dure presque 1 H.
J'avais un plantage (la fenêtre figé, et les processbar qui ne bougeais plus, mais l'application qui réalisait son travail. Très pénible pour l'utilisateur, sachant en plus qu'en mode debugage pas de problème.
J'ai trouvé dans la FAQ un exemple qui marche mais me provoque 1 bug
J'ai mis mon traitement a l'endroit indiqué. et donc cela marche enfin presque. J'ai ma fenetre qui se duplique, celle de devant devient inactive, sur celle de derrière sur laquelle les progressbar se mette à jour, le bouton stop ne marche pas.
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 Stop := False; I := 0; { Traitement long } Repeat Inc(i); Label1.Caption := IntToStr(i); { Mise à jour des évènements en attente } Application.ProcessMessages; Until (i>=100000000)Or Stop; //modif à 10000 end; procedure TForm1.BoutonStopClick(Sender: TObject); begin { Demande d'arrêt de la boucle } Stop:=True; end;
Merci pour votre aide.
Partager