[R] En fermant la fenêtre fille,la fenêtre mère repond plus

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Piloupilou
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 26 févr. 2011 13:42
Status : Hors ligne

[R] En fermant la fenêtre fille,la fenêtre mère repond plus

#1

Message par Piloupilou »

Bonjour à tous

Si vous ouvrez le script,dans la fenetre d'accueil (mere) seul le bouton "Nouveau script d'install est actif"
celui ci ouvre une fenetre fille.

Si je ferme cette dernière elle se ferme bien mais le script ne repond plus.

J'ai cherché pendant longtemps hier, mais rien à faire

En plus ca doit etre "basique".

Si quelqu'un comprend et peux me l'expliquer ca serait sympa .

Merci d'avance



A et j'oubliais voici le code (je débute ...)

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.6.1
    Author:         myName

    Script Function:
    Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#Region ### START Koda GUI section ### Form=D:\GdS\ecrans\genere par coda 2\accueil_gds.kxf
; gui fentre d'accueil
Global $fenetre_accueil = GUICreate("Accueil Gestion de Script", 791, 498, 130, 282)
$titre_fenetre_accueil = GUICtrlCreateLabel("Gestion de Script 0.1", 200, 24, 300, 41)
$Group1_installation_logiciel = GUICtrlCreateGroup("Script d'installation de logiciel", 24, 96, 561, 121)
$btn_nouveau_script_fenetre_accueil = GUICtrlCreateButton("Nouveau Script d'install", 32, 128, 163, 25, $WS_GROUP)
$btn_recherche_script_fenetre_accueil = GUICtrlCreateButton("Rechercher script existant", 328, 128, 219, 25, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2_autour_du_script = GUICtrlCreateGroup("Autour du script (mise à jour base, arborescence registre...)", 32, 264, 561, 97)
$btn_base_de_registre = GUICtrlCreateButton("Base de registre commune", 64, 304, 131, 25, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$btn_quitter_fenetre_accueil = GUICtrlCreateButton("Quitter", 680, 448, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Statistiques", 32, 432, 219, 41, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;gui fenetre d'accueil






While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $btn_quitter_fenetre_accueil
            Exit

        Case $btn_nouveau_script_fenetre_accueil
            _ouvre_fenetre_nouveau_script()


    EndSwitch
WEnd


Func _ouvre_fenetre_nouveau_script()
    GUISetState(@SW_HIDE, $fenetre_accueil)

    $fenetre_nouveau_script = GUICreate("Nouveau script", 413, 298, 570, 48)
            $label_nom_logiciel_fenetre_nouveau_script = GUICtrlCreateLabel("Nom du logiciel", 32, 40, 36, 17)
            $label_version_logiciel_fenetre_nouveau_script = GUICtrlCreateLabel("Version du logiciel", 32, 80, 36, 17)
            $Btn_demarrer_creation_script = GUICtrlCreateButton("Demarrer la creation du script", 184, 200, 171, 25, $WS_GROUP)
            $input_nom_logiciel_fenetre_nouveau_script = GUICtrlCreateInput("", 104, 40, 121, 21)
            $input_version_logiciel_fenetre_nouveau_script = GUICtrlCreateInput("", 105, 82, 121, 21)
            $input_date_creation_script_fenetre_nouveau_script = GUICtrlCreateInput("Date de creation", 107, 127, 121, 21)
            $label_date_de_creation_script_fenetre_nouveau_script = GUICtrlCreateLabel("Date de creation", 32, 128, 36, 17)


    GUISetState(@SW_SHOW, $fenetre_nouveau_script)

    While 1
                $nMsg = GUIGetMsg()

                Switch $nMsg

                    Case $Btn_demarrer_creation_script
                        $lecture_input_nom_logiciel=GUICtrlRead($input_nom_logiciel_fenetre_nouveau_script)
                        $lecture_input_version_logiciel=GUICtrlRead($input_version_logiciel_fenetre_nouveau_script)
                        MsgBox (4,"confirmation de demande de script","vous aller creer un script à propos de " & $lecture_input_nom_logiciel & " version " & $lecture_input_version_logiciel & " Etes vous sur? ")

                    Case $GUI_EVENT_CLOSE
                        GUIDelete($fenetre_nouveau_script)
                        GUISetState(@SW_SHOW,$fenetre_accueil)


                EndSwitch
            WEnd
EndFunc
 
Modifié en dernier par Piloupilou le dim. 10 avr. 2011 14:28, modifié 1 fois.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..]En fermant la fenetre fille,la fenetre mere repond p

#2

Message par matwachich »

► Afficher le texte
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Piloupilou
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 26 févr. 2011 13:42
Status : Hors ligne

Re: [..]En fermant la fenetre fille,la fenetre mere repond p

#3

Message par Piloupilou »

si je comprends bien comme je ne mettais pas de exitloop le script revenais dans le petit while de ma fonction

et avec le exitloop on sort de ce while pour revenir dans le while principal ?


Du coup dans le while principal un exitloop est equivalent à un exit tout court ?
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..]En fermant la fenetre fille,la fenetre mere repond p

#4

Message par sylvanie »

Bonjour, et bien dans l'idée oui, car vous n'avez plus de code à interpréter par la suite.

Maintenant pour faire "plus conventionnel", il vaut mieux mettre en plus en fin de script principal un Exit 0 pour signaler que tout c'est bien passé.
De même "normalement" une fonction devrait faire un "return" même sans argument à la fin de son traitement.

Cela marche quand même sans, car l'interpréteur en exécute de lui même par défaut (return ou exit).
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Piloupilou
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 26 févr. 2011 13:42
Status : Hors ligne

Re: [..]En fermant la fenetre fille,la fenetre mere repond p

#5

Message par Piloupilou »

si je met un return dans la définition de ma fonction il faudra ensuite que pour l'executer je la mette dans une variable pour vérifier que tout ce soit bien passé ?
Et comment le Exit 0 signifie que tout s'est bien passé ?
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..]En fermant la fenetre fille,la fenetre mere repond p

#6

Message par sylvanie »

Ce n'est pas une obligation du tout, on peut appeler un fonction sans stocker sa valeur de retours. On ne le fait que si on a besoins de cet dernière.
Dans le cas d'une fonction comme un affichage secondaire de fenêtre , ce n'est pas forcément indispensable. D'ailleurs sur ce genre de fonction on faire un return vide.
Sur une fonction vous pouvez également jouer avec la macro @error pour savoir si tout c'est bien passer (consulter seterror).
Par contre sur la fonction Exit c'est très intéressant de renvoyer 0 quand tout va bien (c'est le cas de la majorité des exécutables) et autre chose sinon. Cela permet par la suite au niveau système de savoir si tout c'est bien passé lorsqu'on a fini d'exécuter un exe.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Piloupilou
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 26 févr. 2011 13:42
Status : Hors ligne

Re: [..]En fermant la fenetre fille,la fenetre mere repond p

#7

Message par Piloupilou »

c'est noté merci
Répondre