Casser une boucle a l'aide d'un bouton

Signaler
Messages postés
6
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 mai 2009
-
Messages postés
6
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 mai 2009
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
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)
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Bonsoir,

manques juste un doeventsdans la boucle pour que les instrucions données par jack puissent fonctionner...
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
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.
Messages postés
6
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 mai 2009

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 ?