[R] Récupération des click-bouton dans un menu secondaire.

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
megaten
Niveau 2
Niveau 2
Messages : 17
Enregistré le : jeu. 05 déc. 2013 17:01
Status : Hors ligne

[R] Récupération des click-bouton dans un menu secondaire.

#1

Message par megaten »

Bonjour,
Je développe un petit programme qui affiche dans une premier fenêtre 2 radioBox et un bouton.
Le choix de l'un des bouton déclenche l'ouverture d'une fenêtre secondaire avec d'autres boutons.
Je n'arrive pas à récuperer les action sur ces bouton.
Je pense que je n'ai pas bien compris comment fonctionne AutoIT, d'ou mon interrogation.
Je vous joins un bout de code simplifié pour m'aider si vous le souhaitez.
Me donner une solution serait un plus, mais l'explication ne serait bien plus utile pour d'autre développement .
Merci de votre aide.
► Afficher le texte
Modifié en dernier par megaten le ven. 13 déc. 2013 19:15, modifié 1 fois.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Récupération des click-bouton dans un menu secondai

#2

Message par Hugues »

Salut,

Par exemple sur un Radio:

Code : Tout sélectionner

If BitAND(GUICtrlRead($rRadio), $GUI_CHECKED) = $GUI_CHECKED Then ;Ton code...
Sinon tu as le code fournit dans l'aide:
► Afficher le texte
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Récupération des click-bouton dans un menu secondai

#3

Message par Hugues »

Je pense que tu t'es trompé dans la déclaration:
► Afficher le texte
au lieu de
► Afficher le texte
Donc ce qui nous donne:
► Afficher le texte
C'est ce que tu désires?
megaten
Niveau 2
Niveau 2
Messages : 17
Enregistré le : jeu. 05 déc. 2013 17:01
Status : Hors ligne

Re: [..] Récupération des click-bouton dans un menu secondai

#4

Message par megaten »

Merci pour ton aide mais le problème ne vient pas de là.
Ce code proposé était mis en commentaire.
Effectivement il y a eu une erreur lorsque j'ai changé le nom des radio bouton, mais cela n'est pas la cause du problème.
La deuxième fenêtre s'ouvre, mais je n'arrive pas à intercepter les clics sur les bouton, pourtant je suis bien dans la boucle d'attente?
Je n'intercepte que 'Esc' ? qui est bien affecté à la deuxième fenêtre.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Récupération des click-bouton dans un menu secondai

#5

Message par Hugues »

Je pense que cela devrais t'aider à gerer tes GUI... http://www.autoitscript.com/wiki/Managing_Multiple_GUIs ou sinon celui là... http://www.autoitscript.fr/forum/viewto ... =3&t=11404.
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écupération des click-bouton dans un menu secondai

#6

Message par Tlem »

Bonjour.
J'ai consulté votre code et je souhaiterais vous soumettre certaines réflexions.

- La fonction _Singleton() devrait être placée juste après les "#includes", car il est inutile d'initialiser des variables et de construire une interface graphique si c'est pour fermer le programme parce qu'il est déjà lancé.

- Dans votre cas, le GUISetState() devrait être placé juste après l'initialisation du dernier élément graphique ($BtnCancel).

- Concernant l'affichage de la fenêtre "fille" et la gestion de ses événements, vous devriez plutôt utiliser la méthode avancée de GUIGetMsg() (voir la doc).
Mais généralement dans un cas comme celui-ci, il est grandement préférable d'utiliser le mode événementiel que est bien plus souple sur la gestion des événements des éléments graphique. Jetez un œil ici : 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é".
megaten
Niveau 2
Niveau 2
Messages : 17
Enregistré le : jeu. 05 déc. 2013 17:01
Status : Hors ligne

Re: [..] Récupération des click-bouton dans un menu secondai

#7

Message par megaten »

Merci pour vos remarques, mais j'ai un peu tailler à la serpe pour réduire l'exemple.
Je vais étudier vos propositions car je démarre avec AutoIT.

Mais je viens de trouver la cause de ce blocage et pour moi il s'agit d'un 'BUG', oui c'est prétentieux de ma part mais j'ai beaucoup plus d'expérience avec d'autres langages. Bref ce n'est pas l'objet de ce thread.
Je reposte le code en ayant tenu compte des remarques précédentes.
Voici le problème
Lorsque je commente $Label dans ma deuxième Form le script fonctionne sans rien changer à ma logique ( bonne ou mauvaise ).
Curieux non! d'autant plus que j'utilise la même structure dans ma première Form sans avoir ce soucis.

Si vous jugez le cas intéressant pour être remonter aux supports, n'hésitez pas à m'indiquer comment, sinon je clos l'incident mais je pense que l'info mérite d'être diffusée. :wink:
► Afficher le texte
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écupération des click-bouton dans un menu secondai

#8

Message par Tlem »

Vous devez utiliser le mode avancé pour GUIGetMsg(), sans quoi les événements capturé seront systématiquement ceux de la fenêtre principale (donc pas de bug). De plus vous devriez créer la 2nd GUI en spécifiant le paramètre "parent" puisque elle est censée être une fenêtre fille ...

Le mode événementiel vous évitera la gestion de deux boucles (voir plus si vous créez d'autres fenêtres) et permettra une meilleure structure de votre code. ;)
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é".
megaten
Niveau 2
Niveau 2
Messages : 17
Enregistré le : jeu. 05 déc. 2013 17:01
Status : Hors ligne

Re: [R] Récupération des click-bouton dans un menu secondair

#9

Message par megaten »

Ok, Je suis convaincu de la gestion événementielle, et je vais m'y attacher, grâce aux éléments de documentations que vous m'avez indiquer.
Mais tout de même cela est un peu fort.
Bon week-end à tous et je vais essayer d'être plus performant.
Encore merci de vos remarques
Meg :D :D :D
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] Récupération des click-bouton dans un menu secondair

#10

Message par Tlem »

Bonsoir, par curiosité, j'ai épluché votre code et vous aviez "raison". Il s'agit bien d'un "bug", mais pas lié à AutoIt. Le "bug" est tout simplement lié à la taille que vous avez donné à votre label (il empiétait sur la zone des boutons). D’où le fait que commenter cette ligne améliorait le fonctionnement de votre code. Maintenant il y avait d'autres petites choses qui faisaient que tout ne fonctionnait pas correctement. Je vous ai adapté le code pour que vous étudiez comment gérer plusieurs interfaces avec AutoIt en mode classique, mais je maintiens que le mode événementiel sera plus adapté à votre conception. Certes, plus il y a de contrôle et plus il y a de ligne de code (2 lignes par contrôle dont une qui correspond à EndFunc), mais au moins, chaque bouton ce voit attribuer une fonction définie et cela revient presque au même que de faire les Case de la boucle, sans compter qu'une fonction peut en appeler une autre. ;)
► Afficher le texte
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é".
megaten
Niveau 2
Niveau 2
Messages : 17
Enregistré le : jeu. 05 déc. 2013 17:01
Status : Hors ligne

Re: [R] Récupération des click-bouton dans un menu secondair

#11

Message par megaten »

Bravo et merci pour votre perspicacité. Il est vrai qu'après 2 jours pour détecter l'origine de cette anomalie j'ai lévé le pied.
En effet c'est lorsque je me suis mis à traiter l'esthétique que le problème à surgi, mais bien sur impossible de tester à chaque ligne de code.

Voila ce que j'appelle une bonne expérience pour débuter avec un nouveau langage que je trouve puissant et proche du système.
Je vais donc poursuivre mon éducation, cerise sur le gâteau je sais que l'équipe du forum sera là pour m'épauler si besoin.

Bonnes fêtes de fin d'année, il n'est jamais trop tard pour bien faire la fête.

Meg :D :D :D
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] Récupération des click-bouton dans un menu secondair

#12

Message par Tlem »

Merci. Bonnes fêtes à vous aussi et surtout, bon développement. ;)
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