Page 1 sur 1

[R] Bug avec les GUI

Posté : sam. 07 févr. 2009 20:01
par erreur
Bonjour,

mon problème est le suivant:
Je voudrais pouvoir créer un GUI dans une fonction(ici menu), et que quand on click sur un bouton une autre fonction(ici GUI2) se lance et crée une autre GUI, quand on quitte cette GUI la fonction principale(ici menu) se relance, mais voila le problème est que à ce moment une autre GUI se forme qui est identique à la première(se qui est assez gênant)et la première ne fonctionne plus.

Voila un exemple de code pour illustrer mon problème:
► Afficher le texte
Merci pour votre aide.

Re: [...] Bug avec les GUI

Posté : sam. 07 févr. 2009 22:28
par Tlem
La coloration syntaxique du code est réservée aux forums : Pensez à bien lire les règles du forum.

Profitez en aussi pour regarder les exemples fournis avec l'installation de AutoIt (C:\Program Files\AutoIt3\Examples\GUI).

Re: [...] Bug avec les GUI

Posté : sam. 07 févr. 2009 22:33
par erreur
Excusez-moi, mais pouvez vous m'aider car je n'arrive pas à résoudre mon problème.

Re: [...] Bug avec les GUI

Posté : sam. 07 févr. 2009 23:04
par Tlem
Si vous avez bien lu mon message, vous y voyez un lien vers le répertoire des exemples fournit avec AutoIt.
Dans ces exemple, vous avez un exemple d'affichage de fenêtres qui répond à votre question.
Un minimum de lecture vous permettra de trouver la solution.

Si vous n'y arrivez pas, alors voici une piste :
► Afficher le textePiste

Re: [...] Bug avec les GUI

Posté : sam. 07 févr. 2009 23:26
par erreur
Je suis désolé mais je ne comprend vraiment pas. Pourriez-vous (sans me le dire si vous ne voulez pas) m'aider un peu plus?

Re: [...] Bug avec les GUI

Posté : sam. 07 févr. 2009 23:54
par Tlem
Réfléchissez et lisez.

Demain il fera jour. :roll:

Re: [...] Bug avec les GUI

Posté : sam. 07 févr. 2009 23:59
par erreur
Désolé mais j'ai du mal, je suis aller regarder le lien mais je ne comprend pas.Pourriez-vous être un peu plus explicite?

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 00:09
par Tlem
Bonne nuit ... :wink:

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 00:10
par erreur
Bon j'ai compris vous ne m'en direz pas plus, n'est ce pas?

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 00:13
par erreur
Est-ce que je doit m'inspirer de sa: child.au3?

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 00:23
par Iste
Bon, alors, voyons voir ce que fait ce script ;

Il appel la fonction menu() qui crée une GUI
Quand on clic, il appel la fonction GUI2() qui crée une autre GUI
Et quand on ferme la 2em GUI, on r'appel la fonction menu() (qui, je le rappel, crée une GUI)

Hum... on crée, crée, efface et recrée, ben oui, au final on a une GUI de trop ^^

Si tu veux acctualiser la 1er fenetre, supprime la avant de la recrer

ligne 45 et 54, rajoute guidelete($GUI1) avant menu() ;)

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 00:50
par erreur
Oui j'ai déjà essayé mais sa ne fonctionne pas, sa bug.

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 01:03
par erreur
Bon voila le seul moyen que j'ai trouvé:
► Afficher le texte
Est-ce correcte?

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 01:44
par Iste
hum oui effectivement, le fait de creer et supprimer une gui dans deux fonction differentes pose probleme... désolé ^^'

Sinon, ton script est un bon exemple !
Mais en faisant ca, tu es bien concient que la fenetre 2 est jute caché, et donc ce n'est pas une nouvelle qui apparait a chaque foi (c'est important si tu y ajoute des input ou autre qui doivent etre "neuf" a chaque foi)

Par contre, comme il n'y a plus de probleme de fonction, maintenant tu peux essayer :
► Afficher le texte
Mais comme je te l'ai dis en MP, sans connaitre le but du code, je ne peux que tordre tes exemple pour essayer de faire au mieux

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 10:36
par Tlem
Iste vous avait donné presque la solution.

Selon votre 1er exemple :
Dans la fonction GUI2() et dans la partie case $GUI_EVENT_CLOSE
Vous avez fait : GUIDelete($GUI2)
Ce qui supprime l'affichage de cette fameuse deuxième fenêtre (ça c'est bon).
Mais le problème c'est que si vous ne faites rien d'autre, vous resterez prisonnier de la boucle de message de la GUI2 !!!

Vous devez donc faire en sorte de supprimer la GUI2 puis sortir de la boucle.
La commande de sortie c'est Exit.
La boucle en Anglais c'est Loop.
Donc la sortie de la boucle c'est : ........ 8)

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 10:52
par erreur
ExitLoop, à oui sa fonctionne merci beaucoup.

Re: [..] Bug avec les GUI

Posté : dim. 08 févr. 2009 10:57
par Tlem
Pourquoi la re-créer puisqu'elle existe déjà ?

Re: [R] Bug avec les GUI

Posté : dim. 08 févr. 2009 14:37
par Iste
Peso je prefere le 2em script (avec une boucle unique, et pas des fonction un peu partout) ^^'

Sinon, recreer une fenetre c'est un moyen radicale de la mettre à jour
Enfin, moi j'en connais pas d'autre (à part mettre à jour les trucs un à un), mais si il existe une fonction "guimise_a_jour", j'aimerais bien la connaitre ^^

Re: [R] Bug avec les GUI

Posté : dim. 08 févr. 2009 18:32
par erreur
J'utilise des fonctions car c'est beaucoup plus pratique pour se repérer.

Re: [R] Bug avec les GUI

Posté : dim. 08 févr. 2009 18:53
par Tlem
@Iste

Ok pour la mise à jour d'une GUI, mais dans ce cas il ne faut pas mettre la boucle de message dans la fonction, mais à l'extérieur et on récupère les messages de chaque GUI en utilisant les fonctions avancées de la boucle de message avec : GUIGetMsg(1)
Sinon, si vous avez 3 GUI ou plus, vous devrez avoir autant de boucle de message, et là ...

Autre solution, le mode événementiel. Mais là il vous faudra bien penser l'interface. Après c'est du gâteau. ;)