Point d'attente et condition de reprise a l'intérieur d'une fonction [Résolu]

Messages postés
58
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2010
- - Dernière réponse : aieeeuuuuu
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
- 27 avril 2006 à 15:40
Bonjour,
J'ai créé une fonction  qui calcule le diamètre théorique d'une bille pour le contrôle d'une cote sur une pièce, et qui affiche ce diamètre dans textbox1. Ne pocédent pas tous les diamètre de bille, j'ai créé une textbox2 dans laquelle je rentre le diamètre de bille que je souhaite utiliser pour contrôler ma cote. la fonction doit ensuite utilisé le diamètre que j'ai rentrer dans la textbox 2.
initialement les deux textbox sont vides. dans le déroulement de la fonction tout ce passe bien jusqu'a l'affichage du diamètre dans la textbox1, mais immédiatement après, la fonction essaye d'enregistrer dans une variable la valeur de la textbox2 dont je n'ai pas encore saisi le contenu. la textbox2 étant vide, j'obtient un message d'erreur.

Ma question est la suivante:
comment faire pour créer un point d'arret dans une fonction, pour ensuite la faire repartir lorsque je click sur un bouton de commande.

Ps: cette partie de la fonction étant dans une boucle, je ne peux pas dissocié l'opération en deux fonction, une qui affiche le contenu de la textbox1 et une qui poursuit le calcul.

Merci d'avance pour votre aide.
Thomas
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
3
Merci
salut

tu as plusieurs solutions.

mais la premiere qui me semble plus logique : pourquoi ne pas forcer l'utilisateur a saisir dans txtBox2 avant de lancer le calcul ?

sinon, au lieu d'utiliser un txtbox de ta forme, tu peux utiliser un inputBox :
ca va afficher un pop up ou l'utilisateur pourra saisir sa donnée. tu recupere ensuite la saisie dans une variable
maVariable = inputbox("saisir le diametre", ...)
rehgarde les MSDN pour plus de précisions, car tu dois pouvoir mettre une valeur par défaut il me semble...

sinon deniere solution, qui est pas franchement top mais qui se rapproche le plsu de ce que tu veux faire :
tu crée un variable bContinue (boolean), que tu place a False au debut de ton calcul
tu crée un bouton "continuer" sur lequel l'utilisateur devra cliquer quand il aura saisie sa donnée. sur l'evenement onClick de ce bouton, tu met bContinue a True (tu peux aussi ajouter ici un controle sur la saisie)

enfin dans ta boucle de calcul, au moment ou tu veux attendre que l'utilisateur ait saisi sa donnée, tu met un boucle qui tourne tant que bContinue est a FALSE
while not bContinue
   DoEvents
wend

oublie pas le DoEvents pour redonner la main au systeme, sinon ca va completement bloquer ton programme.
quand l'utilisateur va cliquer sur le bouton continuer, le programme va sortir de cette boucle pour continuer le calcul.

le probleme c'est que ton processeur va monter a 100% tant que l'utilisateur n'aura pas validé. pour eviter ca tu pourra mettre une petite pause de quelques millisecondes.
mais comme je te le disais ce fonctionnement n'est pas top au niveau developpement et relève plus de la "bidouille"

a toi de voir...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci