Page 1 sur 1

[..] GUIs qui se ferment mal

Posté : ven. 17 mai 2013 22:16
par eyoyo
Bonjour,

Je suis débutant, j'ai pris des morceaux de code à gauche et à droite pour faire une script d'acquisition de données sur une liaison série.
L'acquisition et l'affichage des données fonctionnent à merveille.
Petits soucis cependant:
-je n'arrive pas à fermer les deux fenêtres du GUI lorsque je n'en ai plus besoin ou que je veux quitter le programme.
-Lorsque j'envoie des commandes sur ma liaison série dans la partie "text to send", les commandes sont envoyées mais le programme plante.
► Afficher le texte
Merci pour votre aide.

Re: [..] GUIs qui se ferment mal

Posté : ven. 17 mai 2013 22:31
par mikell
A priori pour les gui on dirait un pb de compatibilité OnEventMode <=> GuiGetMsg
Difficile sinon d'en dire plus dans la mesure où ton script en l'état est inutilisable sur un pc autre que le tien ^^

Re: [..] GUIs qui se ferment mal

Posté : mer. 29 mai 2013 14:24
par keltharak
Bonjour,


C'est bien un problème de mélange entre OnEventMode <=> GuiGetMsg.


Pour commencer, déclare les variables contenant les handle de tes fenêtre en global :

Code : Tout sélectionner

Local $output1, $output2, $output3, $output4, $die, $msg, $results
Local $text[5]
[b]Global $ChildWin, $Form2[/b]
Puis supprime le Switch case pour la fermeture de l'appli et remplace le par un Sleep(100)

Code : Tout sélectionner

While 1
    [b]Sleep(100)[/b]
    If $instr <> '' Then 
    (...)
Et modifie ta fonction Events comme ça :

Code : Tout sélectionner

Func Events()
        Opt("GUIOnEventMode", 1)
        GUISetOnEvent($GUI_EVENT_CLOSE, "justgo"[b], $ChildWin[/b])
       [b] GUISetOnEvent($GUI_EVENT_CLOSE, "justgo", $Form2)[/b]
        GUICtrlSetOnEvent($BtnSend, "SendEvent")
        GUICtrlSetOnEvent($BtnSetPort, "SetPortEvent")
        ;MsgBox(0, "event",'')
    EndFunc   ;==>Events
Ca devrai régler ton problème de fermeture de fenêtre, par contre je ne peux pas tester l'envoi de commande...