[R] Gestion des évènements (pour les nuls)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
yop73
Niveau 2
Niveau 2
Messages : 15
Enregistré le : lun. 27 juil. 2009 07:47
Status : Hors ligne

[R] Gestion des évènements (pour les nuls)

#1

Message 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.
Modifié en dernier par yop73 le lun. 03 août 2009 08:11, modifié 1 fois.
Se dépasser est une course qui ne finit jamais
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Gestion des évènements (pour les nuls)

#2

Message par Tlem »

Ce n'est pas à proprement parlé un tutoriel, mais ça s'en rapproche fortement :
http://www.autoitscript.fr/autoit3/docs ... ntMode.htm
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é".
yop73
Niveau 2
Niveau 2
Messages : 15
Enregistré le : lun. 27 juil. 2009 07:47
Status : Hors ligne

Re: [...] Gestion des évènements (pour les nuls)

#3

Message 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
Se dépasser est une course qui ne finit jamais
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Gestion des évènements (pour les nuls)

#4

Message 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. :shock:

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).
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é".
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [...] Gestion des évènements (pour les nuls)

#5

Message par SagePourpre »

Voiçi un exemple tout simple

► Afficher le texte
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
yop73
Niveau 2
Niveau 2
Messages : 15
Enregistré le : lun. 27 juil. 2009 07:47
Status : Hors ligne

Re: [...] Gestion des évènements (pour les nuls)

#6

Message 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
Se dépasser est une course qui ne finit jamais
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [...] Gestion des évènements (pour les nuls)

#7

Message 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)
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
yop73
Niveau 2
Niveau 2
Messages : 15
Enregistré le : lun. 27 juil. 2009 07:47
Status : Hors ligne

Re: [...] Gestion des évènements (pour les nuls)

#8

Message 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
Se dépasser est une course qui ne finit jamais
Répondre