[Tuto] La gestion simple de deux GUI's

Espace contenant des tutoriels divers concernant AutoIt.
Règles du forum
.

Tutoriel "La programmation avec Autoit" : https://openclassrooms.com/fr/courses/1 ... vec-autoit
Répondre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[Tuto] La gestion simple de deux GUI's

#1

Message par Tlem »

Pour les besoins d'une réponse de message, voici quelques exemples de gestion de deux GUI's.

Exemple N°1 :
On affiche une GUI 1 puis lors d'un clic sur un bouton de celle-ci, la GUI 1 disparaît pour faire place à la GUI 2.
Si on clique sur le bouton de la GUI 2 alors celle-ci disparaît et la GUI 1 ré-apparaît.
Dans cet exemple, la gestion des messages de GUI reste classique.
► Afficher le texteCode de l'exemple 1
Exemple N°2 :
Même chose que sur l'exemple N°1, sauf que cette fois-ci la gestion des messages de GUI prend en compte la GUI d'origine.
Avec cet exemple, on détermine quelle GUI envoi le message.
► Afficher le texteCode de l'exemple 2
Exemple N°3 :
Sur la base de l'exemple N°2, ici la GUI 2 devient une fenêtre enfant de la GUI 1.
Cette fois-ci, la GUI 1 n'est jamais masquée, mais elle est désactivée.
La GUI 2 apparaît en décalé pour montrer que les deux GUI's sont bien affichées.
► Afficher le texteCode de l'exemple 3
Ces exemples gardent la gestion des événements classiques, mais pour des GUI's très complexes, il est sans doute préférable de passer par le mode événementiel.
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é".
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#2

Message par jbnh »

Mais qu'est ce que le mode événementiel ? :P

C'est ça :

Exemple N°1 :
► Afficher le texteExemple 1
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
arrkhan
Niveau 8
Niveau 8
Messages : 528
Enregistré le : sam. 17 nov. 2007 03:30
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#3

Message par arrkhan »

plutôt qu'utiliser le "guidelete", je prefere, et de loin utiliser un "guisetstate(@sw_hide, $La_gui_a_cacher)

Ainsi qu'un système de flag pour en gérer l'ouverture et la fermeture, après chacun son truc hein ^^
► Afficher le texte
guitarist
Niveau 6
Niveau 6
Messages : 235
Enregistré le : mar. 02 déc. 2008 16:59
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#4

Message par guitarist »

Et pourquoi ne pas mettre les deux GUI ans deux fonction et les appeler quand on veut (plus facile non?)
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#5

Message par jbnh »

= mode événementiel...
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
tatane
Niveau 4
Niveau 4
Messages : 63
Enregistré le : mar. 30 juin 2009 20:47
Localisation : Angoulême
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#6

Message par tatane »

Petit bémol au mode évènementiel, je l'ai testé brièvement il y a quelques jours (trop brièvement ?) et je me suis retrouvé coincé lorsque j'ai voulu mettre une boucle infinie dans une deuxième GUI avec les contrôles d'évènement associés. J'ai cherché sur le net et apparemment il faut obligatoirement sortir de cette boucle pour que les GUICtrlSetOnEvent soient capturés. Malheureusement j'avais besoin de cette boucle infinie pour mon programme, j'ai donc dû repasser au mode GuiGetMsg.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#7

Message par Tlem »

Pourquoi ne pas avoir traité les événements de votre deuxième GUI aussi en mode événementiel ?
Cela aurait été bien 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é".
tatane
Niveau 4
Niveau 4
Messages : 63
Enregistré le : mar. 30 juin 2009 20:47
Localisation : Angoulême
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#8

Message par tatane »

Et bien justement je l'ai traitée en mode évènementiel mais les évènements de cette dernière ne pouvait se déclencher à cause de la boucle While 1, et j'étais "obligé" de mettre une fonction dans cette boucle pour que mon programme fonctionne comme je le voulais, cette fonction devant être exécutée en permanence.
guitarist
Niveau 6
Niveau 6
Messages : 235
Enregistré le : mar. 02 déc. 2008 16:59
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#9

Message par guitarist »

Je me suis aussi retrouver dans cette situation et a mon avis la seule solution et de passer au GuiGetMsg
Avatar du membre
arrkhan
Niveau 8
Niveau 8
Messages : 528
Enregistré le : sam. 17 nov. 2007 03:30
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#10

Message par arrkhan »

et en passant par un adlib, je pense que ça aurait résolu ton problème.

Voici le même script qu'au dessus, en mettant les deux gui dans deux fonctions
► 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: [Tuto] La gestion simple de deux GUI's

#11

Message par Tlem »

@tatane
Difficile de juger des possibilités sans avoir vu le code. Cela dit, je pense que vous êtes passez à coté de quelque chose. ;)
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é".
Avatar du membre
arrkhan
Niveau 8
Niveau 8
Messages : 528
Enregistré le : sam. 17 nov. 2007 03:30
Status : Hors ligne

Re: [Tuto] La gestion simple de deux GUI's

#12

Message par arrkhan »

@ tatane

J'ai édité le code juste au dessus pour rajouter un adlibenable dans la gui1, ça répond peut-être à vos besoins
Répondre