Page 1 sur 1
[R] Fenetre , comment ca marche?
Posté : sam. 01 mars 2008 19:32
par tutu
Bonjour, je suis actuellement entrain de comprendre le fonctionnement des fenetres. j'ai trouvé ceci dans l'aide:
Code : Tout sélectionner
#include <GUIConstants.au3> ;inclu l'utilisation de nouvelle commande
GUICreate("Hello World", 200, 100); créer une fenetre ayant pour titre hello word
GUICtrlCreateLabel("Hello world! How are you?", 30, 10) ;ecrit du texte dans la fenetre
GUICtrlCreateButton("OK", 70, 50, 60);cré un bouton ok
GUISetState(@SW_SHOW); montre la fenetre?
Sleep(5000);affiche la fenetre 5 sec...
Donc voici ma question comment peut ton faire pour que la fenetre reste afficher (sauf quand on veut la quitter) et que faut-il utiliser pour taper du texte dans la fenetre.
Re: [..]Fenetre , comment ca marche?
Posté : sam. 01 mars 2008 20:28
par moutelous
Bonjour,
Il existe différente technique pour répondre à ton problème, voici un exemple tiré de l'aide (qu'il faut absolument essayé de lire avant de poster ...)
Code : Tout sélectionner
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
$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")
GUISetState(@SW_SHOW)
While 1
Sleep(1000) ; Idle around
WEnd
Func OKButton()
;Note: at this point @GUI_CTRLID would equal $okbutton,
;and @GUI_WINHANDLE would equal $mainwindow
MsgBox(0, "GUI Event", "You pressed OK!")
EndFunc
Func CLOSEClicked()
;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE,
;and @GUI_WINHANDLE would equal $mainwindow
MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
Exit
EndFunc
L'important est bien sûr de disposer d'une boucle d'attente (ici la boucle while) qui attend une intervention de l'utilisateur.
Concernant ta deuxième question va voir au niveau de la fonction "GUICtrlCreateInput" dans l'aide.
Re: [..] Fenetre , comment ca marche?
Posté : dim. 02 mars 2008 01:43
par tutu
merci bien, je vais essayer de decripter cela demain et je vous tiens au courant si je comprend tout xD.
Re: [..] Fenetre , comment ca marche?
Posté : dim. 02 mars 2008 10:40
par Voodoo
Sujet déplacé !
Re: [..] Fenetre , comment ca marche?
Posté : dim. 02 mars 2008 13:19
par tutu
Me revoila !!! , déjà désolé de ne pas avoir poster ou il ne fallait pas, parfois je suis tête en l'air.
Alors je pense avoir compris en gros comment ca fonctionne. j'ai meme réussi a enregistrer ce qui y'a d'écrit dans un input. voici mon code :
Code : Tout sélectionner
#include <GUIConstants.au3>
dim $obtient
Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
$mainwindow = GUICreate("Hello World", 200, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
$Enregistrer = GUICtrlCreateInput("",0,80,60)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
GUICtrlSetOnEvent($okbutton, "OKButton")
GUICtrlSetOnEvent($Enregistrer, "Enregistrer")
GUISetState(@SW_SHOW)
While 1
Sleep(1000) ; Idle around
WEnd
Func OKButton()
;Note: at this point @GUI_CTRLID would equal $okbutton,
;and @GUI_WINHANDLE would equal $mainwindow
MsgBox(0, "GUI Event", "You pressed OK! and write "&$obtient)
EndFunc
func enregistrer()
$obtient=GUICtrlRead($Enregistrer)
EndFunc
Func CLOSEClicked()
;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE,
;and @GUI_WINHANDLE would equal $mainwindow
MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
Exit
EndFunc
Toutefois, je me pose toujours des questions, comment savoir ce que va inclure un include?
Je ne comprend pas ce que fais la commande opt et son option.
Pour finir je me demande ce qui declare les variables $mainwindows,$GUI_EVENT_CLOSE,$Enregistrer....
Re: [..] Fenetre , comment ca marche?
Posté : dim. 02 mars 2008 17:36
par eln
tutu a écrit :Toutefois, je me pose toujours des questions, comment savoir ce que va inclure un include?
Je ne comprend pas ce que fais la commande opt et son option.
Pour finir je me demande ce qui declare les variables $mainwindows,$GUI_EVENT_CLOSE,$Enregistrer....
Il suffit d'aller voir le dossier dans C:\Program Files\AutoIt3\Include ainsi on peut voir que $GUI_EVENT_CLOSE est déclaré dans GUIConstantsEx.au3.
$mainwindows est déclaré par la fonction GUICreate
$Enregistrer est déclaré par la fonction GUICtrlCreateInput
...
Re: [..] Fenetre , comment ca marche?
Posté : dim. 02 mars 2008 22:22
par Tlem
Je suis d'accord avec tutu.
moutelous à montré la méthode événementielle de création d'une fenêtre, mais je ne suis pas convaincu que se soit la méthode la plus utilisée (Dans l'aide, on trouve plutôt la méthode classique).
Certes c'est une bonne chose, mais pour quelqu'un qui débute, ce n'est pas le chemin le plus simple.
Re: [..] Fenetre , comment ca marche?
Posté : lun. 03 mars 2008 12:36
par tutu
Merci pour votre aide, j'ai réussi a créé ma premiere fenetre hier.
Reste plus que cette ligne qui me semble encore obscur:
Sinon quelle est l'autre méthode? et que cela change-t-il d'utiliser l'une ou l'autre?
Re: [..] Fenetre , comment ca marche?
Posté : lun. 03 mars 2008 12:44
par Tlem
tutu a écrit :Sinon quelle est l'autre méthode? et que cela change-t-il d'utiliser l'une ou l'autre?
Lisez tout le post pour votre info.
Mais sylvanie à bien résumé l'utilisation du mode 'évènementiel'
ici.
Re: [..] Fenetre , comment ca marche?
Posté : mar. 04 mars 2008 11:31
par tutu
Donc si jai bien compris, il faut mieux rajouter cette ligne, pour eviter de futur desagrement. Pour le moment jarrive a me debrouiller, on peut dire que le probleme est resolu, merci à tous pour votre aide.
Re: [..] Fenetre , comment ca marche?
Posté : mar. 04 mars 2008 22:14
par Tlem
tutu a écrit :Donc si jai bien compris, il faut mieux rajouter cette ligne, pour eviter de futur desagrement.
Absolument pas !
Il vous faut utiliser cette ligne, seulement et seulement si vous voulez utiliser le mode événementiel, sinon ne la mettez pas.
Re: [R] Fenetre , comment ca marche?
Posté : mar. 04 mars 2008 22:36
par tutu
donc dois je faire une generalité en me disant si jutilise une commande event quelque chose, qu'il faut absolument mettre :Opt("GUIOnEventMode", 1) ??? Sinon existe til des commandes event ou le nom event ne figure pas dans la commande?
Re: [R] Fenetre , comment ca marche?
Posté : mer. 05 mars 2008 00:20
par Tlem
Je ne peut etre plus clair que le post de sylvanie :
http://www.autoitscript.fr/forum/viewto ... 1219#p1219
Après, à vous de faire vos choix.