Bonjour,

Je réalise actuellement une application qui traite un grand nombre de données dans une boucle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
void maFenetre:FormActivate(TObject *Sender)
{
   for(int i=0;i<10000;i++)
   {
       (...)
       Application->ProcessMessages(); // pour que ça ne reste pas bloqué !
   }
}
Or je souhaiterais que lors d'un clic de la souris sur la croix de la fermeture de la fenêtre, celle-ci stoppe ma boucle (via un booléen) et ferme la fenêtre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
void maFenetre:FormActivate(TObject *Sender)
{
   stop = false;
   for(int i=0;(i<10000)&&(!stop);i++)
   {
       (...)
       Application->ProcessMessages(); // pour que ça ne reste pas bloqué !
   }
}
Mais j'ai beau mettre "stop=true;" dans l'événement "OnClose" ou dans l'événement "OnCloseQuery" de ma fenêtre, cela ne fonctionne pas, elle ne ferme la fenêtre qu'à la fin de ma boucle... Que faire ?

Merci par avance !