Page 1 sur 1

[Tuto] La gestion simple de deux GUI's

Posté : dim. 25 oct. 2009 10:52
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.

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

Posté : dim. 25 oct. 2009 11:15
par jbnh
Mais qu'est ce que le mode événementiel ? :P

C'est ça :

Exemple N°1 :
► Afficher le texteExemple 1

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

Posté : dim. 25 oct. 2009 16:35
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

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

Posté : mar. 03 nov. 2009 10:25
par guitarist
Et pourquoi ne pas mettre les deux GUI ans deux fonction et les appeler quand on veut (plus facile non?)

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

Posté : mar. 03 nov. 2009 12:30
par jbnh
= mode événementiel...

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

Posté : mar. 03 nov. 2009 13:21
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.

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

Posté : mar. 03 nov. 2009 16:06
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.

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

Posté : mar. 03 nov. 2009 18:18
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.

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

Posté : mar. 03 nov. 2009 20:01
par guitarist
Je me suis aussi retrouver dans cette situation et a mon avis la seule solution et de passer au GuiGetMsg

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

Posté : mar. 03 nov. 2009 21:03
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

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

Posté : mar. 03 nov. 2009 22:20
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. ;)

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

Posté : jeu. 05 nov. 2009 12:47
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