Intercepter un évenement depuis une boucle

Résolu
Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 - 3 mars 2007 à 13:00
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 3 mars 2007 à 15:13
Bonjour,
Je réalise un programme de transmission de fichiers via le port série, tout ca marche bien, pas de problème à ce niveau et j'utilise VB 6.0
Mais je voudrais pouvoir stopper le transfert à tout moment, genre un bouton "annuler" qui mettrait fin au transfert en cours, mais je ne sais pas trop comment faire vue que pour transmettre un fichier, je suis dans une boucle:

TANT QUE je ne suis pas a la fin du fichier
    transmettre ...
FIN TANT

J'ai essayé de mettre dans cette boucle un Command1.Refresh pour avoir "accès à chaque passage dans la boucle, mais cela ne semble pas fonctionner
En gros, j'aimerais savoir comment intercepter un évenement sur un bouton alors que je suis en train de "mouliner" dans une boucle !
Si quelqu'un à une idée, ou même une solution, je le remercie d'avance !

5 réponses

MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
3 mars 2007 à 13:37
A moins d'utiliser du multi-thread, ton programme ne peut executer qu'une commande à la fois.
Donc tant que tu es dans ta boucle, rien d'autre ne peut s'executer. C'est pourquoi les clic sur le bouton sont "stockés" quelque part, puis lorsque la boucle (et meme la fonction qui contient la boucle) est terminée, les evenements "Click" vont etre déclenchés.

Pour pouvoir palier à ça, il faut utiliser DoEvents dans ta boucle, qui va permettre de faire "une pause" dans l'execution de ta boucle pour executer d'autres codes. ça va ralentir ta boucle un peu mais bon.

StopAction = False
TANT QUE je ne suis pas a la fin du fichier OU StopAction = True
    transmettre ...
    doevents
FIN TANT

Et dans l'evenement click du bouton :
StopAction=True

Ne pas oublier de déclarer StopAction as Boolean dans la form :
Dim StopAction as Boolean

- MadMatt -
Vb System Library
3
Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 1
3 mars 2007 à 13:57
Merci bien MadMatt !
ca répond tout à fait a mon problème, merci ^^
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
3 mars 2007 à 14:10
Je ne suis pas certain d'être bien réveillé, mais ne serait-ce pas plutôt
TANT QUE je ne suis pas a la fin du fichier ET StopAction = False
    transmettre ....

MPi
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
3 mars 2007 à 14:15
Arf oui completement, j'ai confondu avec un JUSQU'A QUE
Tu as completement raison toutes mes excuses ^^

- MadMatt -
Vb System Library
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
3 mars 2007 à 15:13
Pas de problème...
Ça me rassure de voir voir que je suis bien réveillé ... ¦¬)
... malgré le peu d'heures de sommeil ...

MPi
0
Rejoignez-nous