[R] Fenetre , comment ca marche?

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

[R] Fenetre , comment ca marche?

#1

Message 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.
Modifié en dernier par tutu le mar. 04 mars 2008 11:32, modifié 1 fois.
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [..]Fenetre , comment ca marche?

#2

Message 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.
A+
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [..] Fenetre , comment ca marche?

#3

Message par tutu »

merci bien, je vais essayer de decripter cela demain et je vous tiens au courant si je comprend tout xD.
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Fenetre , comment ca marche?

#4

Message par Voodoo »

Sujet déplacé !
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [..] Fenetre , comment ca marche?

#5

Message 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....
Avatar du membre
eln
Niveau 6
Niveau 6
Messages : 202
Enregistré le : sam. 28 juil. 2007 12:54
Status : Hors ligne

Re: [..] Fenetre , comment ca marche?

#6

Message 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
...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fenetre , comment ca marche?

#7

Message 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.
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é".
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [..] Fenetre , comment ca marche?

#8

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

Code : Tout sélectionner

Opt("GUIOnEventMode", 1)
Sinon quelle est l'autre méthode? et que cela change-t-il d'utiliser l'une ou l'autre?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fenetre , comment ca marche?

#9

Message 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.
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é".
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [..] Fenetre , comment ca marche?

#10

Message 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.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fenetre , comment ca marche?

#11

Message 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.
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é".
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [R] Fenetre , comment ca marche?

#12

Message 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?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fenetre , comment ca marche?

#13

Message 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.
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é".
Répondre