Problem de fermeture de boucle

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
DevPro
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 09 janv. 2024 05:17
Status : Hors ligne

Problem de fermeture de boucle

#1

Message par DevPro »

Bonjour.

J'utilise ce code quej'ai tyrouvé dans la doc :

Code : Tout sélectionner

    GUICreate("My GUICtrlRead")

    Local $idMenu1 = GUICtrlCreateMenu("File")

    Local $idList = GUICtrlCreateList("", 10, 10, -1, 100)
    GUICtrlSetData(-1, "item1|item2|item3", "item2")

    Local $idButton = GUICtrlCreateButton("Read", 10, 110, 50)

    GUISetState(@SW_SHOW) 
    Local $idMsg, $iMenustate, $sMenutext
    Do
        $idMsg = GUIGetMsg()
        If $idMsg = $idButton Then
            MsgBox($MB_SYSTEMMODAL, "Selected listbox entry", GUICtrlRead($idList))
            $sMenutext = GUICtrlRead($idMenu1, 1)
            MsgBox($MB_SYSTEMMODAL, "State and text of the menuitem", "state:" & $iMenustate & @CRLF & "text:" & $sMenutext)
        EndIf
    Until $idMsg = $GUI_EVENT_CLOSE

MsgBox(0, '', 'test')
Le problème est que si je ferme pas la GUI la suite du script reste bloqué.

Pourtant les boutons marche bien.
Je suis un eu perdu desolé

CDT
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Problem de fermeture de boucle

#2

Message par mikell »

Bin c'est normal... tu as une boucle infinie

    Do
        $idMsg = GUIGetMsg()
       ; ...
    Until $idMsg = $GUI_EVENT_CLOSE

dont tu ne peux sortir que par un $GUI_EVENT_CLOSE qui ferme la gui, donc il te faut trouver un autre moyen d'en sortir (par exemple mettre un Exitloop après la 2ème Msgbox, etc)
NB : si le script doit continuer après la boucle, clairement il vaut mieux utiliser une boucle While
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Phil
Niveau 1
Niveau 1
Messages : 1
Enregistré le : mer. 24 janv. 2024 05:46
Status : Hors ligne

Re: Problem de fermeture de boucle

#3

Message par Phil »

Bonjour,

Effectivement, l'utilisation de cette boucle peut facilement entraîner des boucles infinies si elle n'est pas bien gérée. Dans le contexte de la programmation, comme dans le SEO, il est crucial d'optimiser les structures pour éviter les pièges. Tout comme on utilise des balises et des mots-clés pertinents pour améliorer le référencement d'un site, ici, l'utilisation d'une boucle "While" pourrait être plus appropriée pour un contrôle plus précis, évitant ainsi le blocage dans une boucle infinie. Cela permettrait au script de continuer à fonctionner de manière efficace et optimisée, un peu comme une page web bien structurée pour le SEO.
Répondre