[..] Actions fenêtre fille

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

[..] Actions fenêtre fille

#1

Message par EricF »

Bonjour,
Je souhaite ajouter une fenêtre fille ouverte depuis un menu. Ca marche, mais je me pose une question.
J'ai mis le GUICreate() dans le suite correspondant au menu.

Code : Tout sélectionner

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
    
        Case $MenuItem ;Menu A propos
            $dlgAbout = GUICreate("About", 324, 199, 189, 135)
            GUISetIcon("", -1)
            $dlgAbout_GroupBox1 = GUICtrlCreateGroup("", 8, 8, 305, 153)
            $dlgAbout_Label1 = GUICtrlCreateLabel("Nom du produit : ", 16, 24, 80, 17)
            [...]
            $dlgAbout_BtnClose = GUICtrlCreateButton("&OK", 124, 168, 75, 25, 0)
            GUISetState(@SW_SHOW)

        Case $x
            xxxxxx
    EndSwitch
Faut-il définir les actions de la fenêtre fille danbs le switch existant (comme Case $x), ou créer un switch à l'intérieur du Case $MenuItem ? Notamment la gestion de la fermeture de la fenêtre fille.
Modifié en dernier par EricF le dim. 29 juil. 2012 11:34, modifié 1 fois.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: Actions fenêtre fille

#2

Message par TT22 »

==> LIS-ÇA <==
Cordialement,
TT22
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Actions fenêtre fille

#3

Message par EricF »

Oh, merci, le monde est sauvé :)
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Actions fenêtre fille

#4

Message par TT22 »

EricF a écrit :Faut-il définir les actions de la fenêtre fille dans le switch existant (comme Case $x)
Personnellement, c'est ce que je ferais, mais ça va bloquer ton autre GUI pendant ce temps.

Sinon, tu peux créer ta GUI fille dès le début du script, mais ne l'afficher que lorsqu'on le demande.
Comme ça tu met toutes les actions dans le switch principal et les deux GUI peuvent fonctionner en même temps :wink:
Cordialement,
TT22
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Actions fenêtre fille

#5

Message par EricF »

En mettant le code de la GUI dans une fonction que j'appelle dans le Case du menu ?
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Actions fenêtre fille

#6

Message par TT22 »

Non, je pensais plus à un truc comme ça :
► Afficher le texte
Cordialement,
TT22
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Actions fenêtre fille

#7

Message par EricF »

ok. On peut gérer indépendamment le $GUI_EVENT_CLOSE de chaque fenêtre ?

et pour info, quel intérêt de mettre la GUI dans une fonction comme dans le code suivant ?

Code : Tout sélectionner

#include <GUIConstantsEx.au3>

Example()

Func Example()
    Local $menu1, $n1, $n2, $msg, $menustate, $menutext

    GUICreate("My GUICtrlRead") ; will create a dialog box that when displayed is centered

    $menu1 = GUICtrlCreateMenu("File")

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

    $n2 = GUICtrlCreateButton("Read", 10, 110, 50)
    GUICtrlSetState(-1, $GUI_FOCUS) ; the focus is on this button

    GUISetState() ; will display an empty dialog box
    ; Run the GUI until the dialog is closed
    Do
        $msg = GUIGetMsg()
        If $msg = $n2 Then
            MsgBox(0, "Selected listbox entry", GUICtrlRead($n1)) ; display the selected listbox entry
            $menustate = GUICtrlRead($menu1) ; return the state of the menu item
            $menutext = GUICtrlRead($menu1, 1) ; return the text of the menu item
            MsgBox(0, "State and text of the menuitem", "state:" & $menustate & @LF & "text:" & $menutext)
        EndIf
    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Actions fenêtre fille

#8

Message par mikell »

Indispensable lecture :
http://www.autoitscript.com/wiki/Managing_Multiple_GUIs
Sinon faire une fonction permet essentiellement de clarifier le script

Une remarque :
EricF a écrit :Oh, merci, le monde est sauvé :)
TT22 a pris la peine de te prévenir
Mais puisque le fait de respecter les règles du forum te parait dérisoire, ton prochain topic où tu manqueras à ces règles ira à la benne direct et sans avertissement
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Actions fenêtre fille

#9

Message par EricF »

mikell a écrit :Indispensable lecture :
http://www.autoitscript.com/wiki/Managing_Multiple_GUIs
Sinon faire une fonction permet essentiellement de clarifier le script
Merci, je vais regarder ça
mikell a écrit :Une remarque :
EricF a écrit :Oh, merci, le monde est sauvé :)
TT22 a pris la peine de te prévenir
Mais puisque le fait de respecter les règles du forum te parait dérisoire, ton prochain topic où tu manqueras à ces règles ira à la benne direct et sans avertissement
Oui, c'est sûr que deux points oubliés dans le titre vont changer énormément. Et ce n'est pas déjà le cas ? lol
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Actions fenêtre fille

#10

Message par Tlem »

EricF a écrit :Oui, c'est sûr que deux points oubliés dans le titre vont changer énormément.
Lorsque vous vous êtes inscrit sur le forum, vous avez acceptez les règles. La présentation d'un message selon un dispositif etabli en fait partie. Si ces règles ne vous conviennent plus, libre à vous de ne plus écrire dans notre forum.
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é".
Avatar du membre
Uranium
Niveau 5
Niveau 5
Messages : 143
Enregistré le : mer. 28 mars 2012 13:13
Status : Hors ligne

Re: [..] Actions fenêtre fille

#11

Message par Uranium »

► Afficher le texte
« En mathématiques, “évident” est le mot le plus dangereux. »
Répondre