Casser une boucle a l'aide d'un bouton

Mezreel Messages postés 6 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 mai 2009 - 26 mai 2009 à 15:52
Mezreel Messages postés 6 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 mai 2009 - 28 mai 2009 à 14:08
Bonjour.

J'ai un soucis avec une boucle sur VB6

La boucle demande a un programme de réaliser une action avec une variable, puis s'incremente et recomence jusqu'à atteindre la valeur choisit de la variable
Ce que je souhaiterai c'est avoir un bouton sur ma face avant qui stop cette boucle en plein milieu et ce a n'importe quel niveau de l'exécution de la boucle.

Quelqu'un pourrait il m'aider et bien expliquer au cas ou il proposerait un code pour que je le comprenne.

Merci ;)

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 mai 2009 à 16:08
Salut
Catégorie question VB.NET --> VB6
(merci d'y penser la prochaine fois)

Il te suffit de :
- déclarer une variable dans la partie déclarations de ta forme :
   Private bStop As Boolean
Tu devras déplacer cette déclaration dans un module, en déclaration Public, si la Sub n'est pas déclarée dans la forme
- manipuler cette variable dans ton bouton
   bStop = Not bStop
- d'ajouter ce test dans ta boucle
   If bStop Then
      Exit Do, Exit For ... selon la boucle que tu exécutes
   End If

Bien sûr, penser à remettre à zéro ce booléen avant de lancer la boucle

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
27 mai 2009 à 00:36
Bonsoir,

manques juste un doeventsdans la boucle pour que les instrucions données par jack puissent fonctionner...
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 mai 2009 à 01:16
Oui, exact
Merci jmf0
Pour que ton bouton puisse exécuter son code (d'inversion de ce booléen), il faut que ta boucle actuelle laisse respirer le programme.
Pour cela, insère au minimum un DoEvents dans ta boucle.
0
Mezreel Messages postés 6 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 mai 2009
28 mai 2009 à 14:08
Merci de vos réponses. :)

Jusqu'au DoEvents Jack on est d'accord...
Cependant je ne pige pas du tout comment fonctionne cette action.

Doit il être placer a un endroit spécifique de la boucle? Fait il stopper le programme ou bien permet il simplement de pouvoir agir sur la face avant du programme durant une boucle? Doit il être suivit d'un if ou quelque chose d'autre ?
0
Rejoignez-nous