Intercepter un évenement depuis une boucle [Résolu]

Signaler
Messages postés
65
Date d'inscription
dimanche 8 janvier 2006
Statut
Membre
Dernière intervention
27 février 2011
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
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

Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
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
Messages postés
65
Date d'inscription
dimanche 8 janvier 2006
Statut
Membre
Dernière intervention
27 février 2011
1
Merci bien MadMatt !
ca répond tout à fait a mon problème, merci ^^
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Arf oui completement, j'ai confondu avec un JUSQU'A QUE
Tu as completement raison toutes mes excuses ^^

- MadMatt -
Vb System Library
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Pas de problème...
Ça me rassure de voir voir que je suis bien réveillé ... ¦¬)
... malgré le peu d'heures de sommeil ...

MPi