Page 1 sur 1

[..] GUISetOnEvent

Posté : sam. 05 oct. 2013 17:41
par hardfloor
Hello,
Je bloque un peu sur l'utilisation de GUISetOnEvent

En fait en cliquant sur un mot, je dois ouvrir une autre gui et et non pas une mxsbox!
J'arrive bien à l'ouvrir, mais pour la fermer sans TOUT fermer je ne trouve pas.

Pourriez-vous m'aider svp

Code : Tout sélectionner

 #include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Form1", 1166, 607, 191, 121)
$Label1 = GUICtrlCreateLabel("cliquez moi", 24, 56, 49, 17)

GUICtrlSetTip($Label1, "test", 'hello', 1, 1)
GUICtrlSetOnEvent(-1, "Calculer")

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
While 1
    Sleep(10)


WEnd

Func Calculer()
;~  MsgBox(0,"", "Ceci est un test")
$1 = GUICreate("", 500, 300, 90, 60)
GUISetState()
EndFunc



Func _Exit()
    Exit
    EndFunc
 
Si je remet GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
à la fin de la fonction calculer, evidemment cela me ferme les 2 gui !

Re: [..] GUISetOnEvent

Posté : sam. 05 oct. 2013 17:44
par FireFox
Bonjour,
Ajoute un GUISetOnEvent sur la seconde GUI qui amènera dans la fonction appelée à un GUIDelete($1) et non à un Exit.

Cdlt, FireFox.

Re: [..] GUISetOnEvent

Posté : sam. 05 oct. 2013 17:49
par hardfloor
ok parfait , merci à toi!!
ca fonctionne :wink:

Re: [..] GUISetOnEvent

Posté : sam. 05 oct. 2013 18:18
par hardfloor
Et maintenant si je ne veux pas utiliser la fonction guiSetOnEvent (Je teste les 2 méthodes, ca me permet d'apprendre)
Comment puis je réaliser la même chose?

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Form1", 1166, 607, 191, 121)
$Label1 = GUICtrlCreateLabel("cliquez moi", 24, 56, 49, 17)

GUICtrlSetTip($Label1, "test", 'hello', 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


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

        EndSwitch
WEnd

Func Calculer()
;~  MsgBox(0,"", "Ceci est un test")
$1 = GUICreate("", 500, 300, 90, 60)
GUISetState()
EndFunc
 

Re: [..] GUISetOnEvent

Posté : sam. 05 oct. 2013 18:23
par hardfloor
Ah c'est bon je viens de trouver!! Il y a peut etre une autre facon de faire!

Code : Tout sélectionner

Func Calculer()
     Opt("GUIOnEventMode", 1)
    Local $t
;~  MsgBox(0,"", "Ceci est un test")
$1 = GUICreate("", 1166, 607, 191, 121)
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit1")

EndFunc



Func _Exit()
    Exit
EndFunc

Func _Exit1()
    Local $1
    GUIDelete($1)
    Opt("GUIOnEventMode", 0)
    EndFunc
 

Re: [..] GUISetOnEvent

Posté : sam. 05 oct. 2013 18:34
par FireFox
Tu peux utiliser le paramètre avancé de la fonction GUIGetMsg (c.f: helpfile).

Cdlt, FireFox.