Fermeture avec traitement long dans le onActivate
Bonjour,
Je réalise actuellement une application qui traite un grand nombre de données dans une boucle :
Code:
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:
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 !