Page 1 sur 1

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

Posté : ven. 13 déc. 2013 12:40
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

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

Posté : ven. 13 déc. 2013 14:22
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

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

Posté : ven. 13 déc. 2013 14:30
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?

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

Posté : ven. 13 déc. 2013 14:44
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.

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

Posté : ven. 13 déc. 2013 14:45
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.

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

Posté : ven. 13 déc. 2013 15:06
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

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

Posté : ven. 13 déc. 2013 16:40
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

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

Posté : ven. 13 déc. 2013 19:09
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. ;)

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

Posté : ven. 13 déc. 2013 19:16
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

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

Posté : ven. 13 déc. 2013 23:25
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

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

Posté : ven. 13 déc. 2013 23:59
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

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

Posté : sam. 14 déc. 2013 00:06
par Tlem
Merci. Bonnes fêtes à vous aussi et surtout, bon développement. ;)