[R] Stopper une boucle !

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

[R] Stopper une boucle !

#1

Message par joker »

Voilà, j'ai un gros soucis, j'ai une fonction lancé par une boucle, mais cette boucle ne veut jamais ce stopper, donc je ne peux ni fermer, ni effacer mes inputs.

C'est un boucle dans une autre, donc je pense que la deuxieme boucle prend emprise sur la premier, et donc elle ne fonctionne pas ensemble, comment faire pour que deux boucle fasse ça ensemble ?

Code : Tout sélectionner

While 1
$case = GuiGetMsg()
    Select
        Case $case = $GUI_EVENT_CLOSE
            Exit
        Case $case = $Button2
            while 2
                $debut = GuiCtrlRead ($Input1)
                $perso = GuiCtrlRead ($Input5)
                $fin = GuiCtrlRead ($Input2)
                $TAB = GuiCtrlRead ($Input4)
                $depart = GuiCtrlRead ($Input6)
                $temp = GuiCtrlRead ($Input7)
                env() ; on lance le script
                sleep($temp*60000) ; On attend une minut
                    Select
                        $case = GuiGetMsg()
                        Case $case = $Button3
                            ExitLoop
                    EndSelect
            Wend
        Case $case = $Button1
            GuiCtrlSetData ($Input1, "http://")
            GuiCtrlSetData ($Input2, "")
            GuiCtrlSetData ($Input4, "0")
            GuiCtrlSetData ($Input5, "")
            GuiCtrlSetData ($Input6, "")
    EndSelect
WEnd
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [...] Stopper une boucle !

#2

Message par timmalos »

Il faut toujours EVITER ABSOLUMENT DE mettre 2 boucles: de plus, quand on met While 1, ce n'est pas pour le numéroter, comme vous avez mis votre While 2 (qui m'a bien fait rire :wink: ), mais car on veut que la boucle soit infinie, or 1 est toujours vrai (reference aux boleens).

While 2 va marcher, mais c'est vraiment pas joli :)

J'ai essayé de passer par les Timer, qui contrairement aux sleep ne bloquent pas le script, mais ca devenait trop compliqué et je n'ai pas votre script complet, donc je voulais eviter mais voila le script qui marche avec des mini-thread (2 boucles en meme temps)

Code : Tout sélectionner

While 1
    $case = GuiGetMsg()
    Select
        Case $case = $GUI_EVENT_CLOSE
            Exit
        Case $case = $Button2
                $debut = GuiCtrlRead ($Input1)
                $perso = GuiCtrlRead ($Input5)
                $fin = GuiCtrlRead ($Input2)
                $TAB = GuiCtrlRead ($Input4)
                $depart = GuiCtrlRead ($Input6)
                $temp = GuiCtrlRead ($Input7)
                AdlibEnable("env",60000) ; on lance le script toutes les 60s, dans un mini thread, pour ne pas bloquer la boucle principale
        Case $case = $Button1
            GuiCtrlSetData ($Input1, "http://")
            GuiCtrlSetData ($Input2, "")
            GuiCtrlSetData ($Input4, "0")
            GuiCtrlSetData ($Input5, "")
            GuiCtrlSetData ($Input6, "")
        Case $case = $Button3
            AdlibDisable()
    EndSelect
WEnd

L'avantage est que vous pouvez arreter n'importe quand.
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [...] Stopper une boucle !

#3

Message par joker »

nikel tout fonctionne
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Stopper une boucle !

#4

Message par Tlem »

Sinon, il serait plus avisé d'utiliser le mode évènementiel.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [R] Stopper une boucle !

#5

Message par joker »

explique, ou ramene moi sur un tuto avec cette technique ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Stopper une boucle !

#6

Message par Tlem »

Il suffit d'utiliser ceci.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre