Problème de boucle

Résolu
gaudreaua Messages postés 32 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 15 mai 2009 - 8 mai 2009 à 02:22
gaudreaua Messages postés 32 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 15 mai 2009 - 8 mai 2009 à 19:25
Bonjour,

je réclame votre aide pour un problème de boucle...

Je voudrais  débuter une boucle quand l'utilisateur clique sur une case à cocher puis qu'elle tourne tant et aussi longtemps que l'utilisateur n'a pas décocher la case.

Merci de votre aide.

4 réponses

Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
8 mai 2009 à 16:05
faut faire un timer la, parceque pour une boucle il faut donner une fin sinon ton programe bug,

voila une boucle infini :

Private Sub Check1_click()
if Check1.Value = 1 then
while true
emissionPort (ZEA 3)
Attente (0,5)
buffer = Mscomm1.Input
ShpCapteur1.width = Val(buffer) * 100
wend
end if
emd Sub
sinon ajoute un timer dans ton projet, precise l'interval que tu veut (1000 une seconde) et met la proprieté enable false, voila le code :

Private Sub Check1_click()if Check1.Value 1 then timer1.enable true else timer1.enable = false
end sub

Private Sub Timer1_Timer()
emissionPort (ZEA 3)
Attente (0,5)
buffer = Mscomm1.Input
ShpCapteur1.width = Val(buffer) * 100
end sub

Les yeux montrent la force de l'âme
3
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
8 mai 2009 à 12:54
une boucle de quoi ??
essai avec while true (c'est une boucle infini) mais pas conseiller du tout.
explique un peut peut être on peut t'aider

Les yeux montrent la force de l'âme
0
gaudreaua Messages postés 32 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 15 mai 2009
8 mai 2009 à 14:33
Ok je donne plus de détails...

je veux faire varier le hauteur d'un rectangle en fonction de données que je récupère sur le port série (Système ExAO). Ce rectangle doit varier uniquement quand la case à cocher est cochée sinon aucune variation.

voici un exemple qui fonctionne ... mais pas tout à fait...

Private Sub Check1_click()
if Check1.Value = 1 then
For i = 1 to 200
emissionPort (ZEA 3)
Attente (0,5)
buffer = Mscomm1.Input
ShpCapteur1.width = Val(buffer) * 100

next i
end if
emd Sub

cela fonctionne mais 200 fois.... je voudrais que la boucle tourne tant et aussi longtemps que la case n'est pas décocher et si l'utilisateur la recoche la boucle doit repartir...
emissionPort() et Attente() sont des fonctions. ( envoie d'une commande au système exao en vu de récupérer la réponse // délais d'attente avant de prendre la réponse retournée du système)

Merci de votre aide
0
gaudreaua Messages postés 32 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 15 mai 2009
8 mai 2009 à 19:25
Excellent... ça fonctionne très bien...
0
Rejoignez-nous