Page 1 sur 1
[R] Gestion des évènements (pour les nuls)
Posté : sam. 01 août 2009 07:48
par yop73
Bonjour à tous,
Cette question concerne la gestion globale des évènements.
Je désire créer une fenêtre avec bouton et input qui sous conditions lance une autre fenêtre avec inout et bouton.
Pour la première OK, mais la seconde me met un bronx et je me mélange les pinceaux.
Plus qu'une réponse je cherche un tutoriel de gestion des évènements et de l'organisation du code.
Sinon, je ne crache sur aucun exemple de code simple qui me montre comment gérer les évènements avec plusieurs fenêtres.
Merci de votre patience.
Re: [...] Gestion des évènements (pour les nuls)
Posté : sam. 01 août 2009 11:44
par Tlem
Ce n'est pas à proprement parlé un tutoriel, mais ça s'en rapproche fortement :
http://www.autoitscript.fr/autoit3/docs ... ntMode.htm
Re: [...] Gestion des évènements (pour les nuls)
Posté : sam. 01 août 2009 20:27
par yop73
Merci de l'aide,
Néanmoins, je cherche à lancer une fenêtre et non une msgbox qui réagira au même titre que la fenêtre mère.
Existe-t'il un tutoriel ou un bout de code qui me permettrait de mieux aborder le sujet ?
Merci d'avance
Re: [...] Gestion des évènements (pour les nuls)
Posté : sam. 01 août 2009 21:16
par Tlem
Je ne vois pas ou est le problème !!!
Si vous voulez créer une fenêtre au lieu d'une MsgBox, remplacez le code de cette dernière par le code de création de la nouvelle GUI.
Si vous avez un problème en tête, le mieux serait de l'exposer directement.
Je vous enjoint aussi à regarder les exemples fournit lors de l'installation de AutoIt dans le répertoire : C:\Program Files\AutoIt3\Example
et particulièrement celui-ci : C:\Program Files\AutoIt3\Examples\GUI\Simple\child.au3
qui vous sera sans doute utile (bien qu'il n'y ait pas de gestion événementielle).
Re: [...] Gestion des évènements (pour les nuls)
Posté : dim. 02 août 2009 05:12
par SagePourpre
Voiçi un exemple tout simple
► Afficher le texte
Code : Tout sélectionner
#include<GuiConstants.au3>
Opt("GuiOnEventMode",1)
Global $gui2
$gui = GUICreate("gui1",200,200)
GUISetOnEvent($GUI_EVENT_CLOSE,"quit")
GUICtrlCreateButton("Blu !!!",50,50,50,50)
GUICtrlSetOnEvent(-1,"_secondgui")
GUISetState()
While 1
Sleep(100)
WEnd
Func _secondgui()
$gui2 = GUICreate("BLUBLU",200,200,0,0)
GUISetOnEvent($GUI_EVENT_CLOSE,"fermergui")
GUISetState()
EndFunc
Func fermergui()
GUIDelete($gui2)
EndFunc
Func quit()
Exit
EndFunc
Re: [...] Gestion des évènements (pour les nuls)
Posté : dim. 02 août 2009 17:28
par yop73
Quitte à passer pour un nullos, je cherche à comprendre la gestion des évènements avec différentes fenêtres.
Voici ce que je cherche à faire :
Je crée une fenêtre avec X boutons
Qui lance une autre fenêtre avec X boutons.
Je cherche juste une explication (voire un bout de code) qui corresponde à cela.
J'ai beaucoup programmé en VB et j'avoue être aussi intéressé par AutoIt que perdu dans la gestion des fenêtres.
(d'où mon titre)
Merci de votre patience
Re: [...] Gestion des évènements (pour les nuls)
Posté : dim. 02 août 2009 18:18
par SagePourpre
yop73 a écrit :Quitte à passer pour un nullos, je cherche à comprendre la gestion des évènements avec différentes fenêtres.
Voici ce que je cherche à faire :
Je crée une fenêtre avec X boutons
Qui lance une autre fenêtre avec X boutons.
Je cherche juste une explication (voire un bout de code) qui corresponde à cela.
Et qu'est-ce qu'il avait de pas correct mon code ? ...
Il crée une fenêtre avec un bouton... qui crée une fenêtre vierge (ou tu peux ajouter des boutons)
Re: [...] Gestion des évènements (pour les nuls)
Posté : lun. 03 août 2009 08:11
par yop73
Ca y est, merci
Voici ce qu'il me fallait.
Ce fut long mais ça fait plaisir.
Merci à tous
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
; FENETRE PRINCIPALE------------------------------------------
$mainwindow = GUICreate("Hello World", 200, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
GUICtrlSetOnEvent($okbutton, "OKButton")
; FENETRE SECONDAIRE------------------------------------------
$window2 = GUICreate("window 2 for testing ", 300, 300)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$okbutton_fen2 = GUICtrlCreateButton("OK", 70, 50, 60)
GUICtrlSetOnEvent($okbutton_fen2, "OKButton_fen2")
;-------------------------------------------------------------
GUISetState(@SW_SHOW,$mainwindow)
While 1 ; Boucle d'attente
Sleep(1000)
WEnd
Func OKButton() ; Bouton OK du GUI principal
MsgBox(0, "GUI Event", "You pressed OK!")
GUISetState(@SW_SHOW, $window2)
EndFunc
Func CLOSEClicked() ; Gestion globale des boutons CLOSE
If @GUI_WINHANDLE = $mainwindow Then
MsgBox(0, "GUI Event", "You clicked CLOSE in the main window! Exiting...")
Exit
EndIf
If @GUI_WINHANDLE = $window2 Then
MsgBox(0, "GUI Event", "You clicked CLOSE in the window2 Exiting...")
GUISetState(@SW_HIDE ,$window2)
EndIf
EndFunc
Func OKButton_fen2() ; Bouton OK du GUI secondaire
MsgBox(0, "GUI Event", "You pressed OK!")
GUISetState(@SW_HIDE ,$window2)
EndFunc