[..] GUIs qui se ferment mal

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
eyoyo
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 13 févr. 2013 14:15
Status : Hors ligne

[..] GUIs qui se ferment mal

#1

Message 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.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] GUIs qui se ferment mal

#2

Message 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 ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
keltharak
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 12 janv. 2009 16:35
Status : Hors ligne

Re: [..] GUIs qui se ferment mal

#3

Message 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...
Répondre