Arrêter un programme en cours avec un bouton ANNULER

jeromepol49 Messages postés 51 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 1 juin 2004 - 20 janv. 2004 à 11:19
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 - 20 janv. 2004 à 12:25
Lorsque je clique sur un bouton j'ai un programme qui se lance avec une boucle WHILE (à l'intérieur j'ouvre des BDD et je fais des comparaisons entre elles). Des fois j'ai des boucles qui durent trop longtemps et j'aimerais interrompre en cours de route le programme en cliquant sur un bouton ANNULER.
Je ne sais pas si je suis très clair mais tout élément de réponse et le bien venu.
Merci

2 réponses

cs_guifr Messages postés 105 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 19 mai 2005
20 janv. 2004 à 12:24
C'est facile, créé pour cela une variable de type Boolean, genre "Abort", et lors de la boucle vérifie sa valeur, si elle passe à "True", alors sors de la boucle avec un "exit While"; un click sur le bouton annuler fait passer la valeur Abort à True. Lors de l'appel de la boucle n'oublie pas de redéfinir la valeur à False !
La petite astuce, c'est que ta boucle risque fort de bloquer les autres actions de ton programme, et l'action sur le bouton ne sera prise en compte qu'une fois sorti de la boucle...
A cela, une solution simple, insère un "DoEvents" au millieu de la boucle, juste avant la structure "if" vérifiant l'état de Abort par exemple...
Je ne l'ai pas précisé, mais "Abort" doit être une variable de type Public ou Global bien sûr !
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
20 janv. 2004 à 12:25
labout
Il suffit de creer une variable public par exemple Cont
dans la zone déclaration

dans le code du traitement
cont=true
do while cont
DoEvents
loop

sur le click du bouton annuler
cont=false

@+
0
Rejoignez-nous