[..] Gérer deux boutons dans une fenêtre

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Azir
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 13 août 2014 14:32
Status : Hors ligne

[..] Gérer deux boutons dans une fenêtre

#1

Message par Azir »

Salut ! Je suis un débutant d'Autoit et j'apprends l'utilisation des GUI.
Je pratique un peu ce que j'ai comme connaissance dans le domaine des GUI.
J'essaye actuellement de mettre une Check Box et un simple bouton sur la même fenêtre. Et lorsque on clique sur ce bouton, la 2ème fenêtre apparait et que la 1ère disparait.
Pour que vous compreniez, voici le code que j'ai écris :

Code : Tout sélectionner

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

;-----------------GUI_1 CREATE + CHECK_BOX AND BUTTONS ----------------------------------
Dim $GUI_1 = GUICreate("GUI_1", 200, 200, 300, 200)
Dim $But_1 = GUICtrlCreateButton("AF_GUI_2", 60, 135, 75, 25)
Dim $Check_1 = GUICtrlCreateCheckBox("CHECK_1", 60, 135, 75, 25)

;-----------------GUI_2 CREATE + RADIO_BOX AND BUTTONS ----------------------------------
Dim $GUI_2 = GUICreate("GUI_2", 200, 200, 300, 200)
Dim $But_2 = GUICtrlCreateButton("AF_GUI_1", 60, 135, 75, 25)
Dim $Radio_2 = GUICtrlCreateRadio("RADIO_2", 60, 135, 75, 25)

;-----------------AFFICHAGE DES GUI CREES------------------------------------------------
GUISetState(@SW_SHOW, $GUI_1)

;----------------- POSEMENT DES CONDITIONS ET DE LA BOUCLE ----------------------
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        case $GUI_EVENT_CLOSE
            Exit
        case $But_1
            GUISetState(@SW_SHOW, $GUI_2)
            Fermer($GUI_1)
        case $But_2
            GUISetState(@SW_SHOW, $GUI_1)
            Fermer($GUI_2)
    EndSwitch
WEnd
Func Fermer($prm1)
    Return Exit $prm1
EndFunc
Vous aurez du remarquer le fait que j'ai crée une function qui permet de fermer la première GUI ou la deuxième lorsqu'on clique sur les boutons, mais je crois que l'expression est fausse ( d'après ScITE :) )
Merci de toute éventuelles réponses !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Gérer deux boutons dans une fenêtre

#2

Message par jguinch »

Exit sert à fermer le script.
Pour fermer une GUI, il y a plusieurs possibilités : par exemple, utiliser GUISetState() pour la masquer (en vue de l'afficher plus tard) ou GUIDelete() pour la supprimer complètement (il faudra alors la reconstruire).
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

Re: [..] Gérer deux boutons dans une fenêtre

#3

Message par caropost »

Bonjour,

Je me permet de remonter ce sujet car j'aurais nommé le mien à peu près pareil mais si vous préférez que je créé un autre post, je le ferai :)

Dans mon script, j'ouvre une fenêtre pour poser une question et je créer 2 boutons pour y répondre (oui ou non). Le problème est que parfois je ne peux pas appuyer sur le bouton que je souhaite et au bout de quelques secondes (ça change à chaque test), je peux cliquer mais c'est assez embêtant et énervant :?
Voici ce que j'ai écris :
► Afficher le texte
Sauriez-vous m'aider à résoudre mon problème ? :)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Gérer deux boutons dans une fenêtre

#4

Message par orax »

Pour moi, ce petit bout de code est fonctionnel. Il ne reproduit pas le problème évoqué.
(Avec ça en plus)

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$fr_yes='oui'
$fr_no='non'
Il n'y aurait pas un traitement (une boucle par exemple) ailleurs dans le code ? Entre GUISetState(@SW_SHOW) et la boucle While 1 par exemple.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

Re: [..] Gérer deux boutons dans une fenêtre

#5

Message par caropost »

Je n'ai pas ajouté ici le texte des variables $fr_yes et $fr_no mais c'est bien présent dans mon script :)

Pour ce bout de code, effectivement c'est dans un if mais il n'y a rien entre le GUISetState et le While 1...
► Afficher le texte
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Gérer deux boutons dans une fenêtre

#6

Message par orax »

Je viens de comprendre, le label est trop grand. On ne peut pas cliquer sur la partie haute des boutons.
Pour visualiser la taille du label :

Code : Tout sélectionner

GUICtrlCreateLabel("Utilisez-vous un vase ?", 25, 50, 300, 40)
GUICtrlSetBkColor(-1, 0xFF0000)
On peut supprimer la taille du label, il s'adaptera automatiquement.

Code : Tout sélectionner

GUICtrlCreateLabel("Utilisez-vous un vase ?", 25, 50)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

Re: [..] Gérer deux boutons dans une fenêtre

#7

Message par caropost »

Effectivement, je ne me doutait pas qu'un label trop grand empêcherait un bouton de fonctionner correctement...

Merci beaucoup ! :) Ca marche beaucoup mieux maintenant ^^
Répondre