Page 1 sur 1

[R] Problème fermeture GUI

Posté : ven. 07 févr. 2014 18:51
par Miryhan
Bonjour
J'ai recommencé à tâter Autoit il a 2 jours et je suis bloqué.

Je m'explique :

-J'ai créé une première GUI dont voici le code obtenu avec KODA :
► Afficher le texte
-Ensuite, je veux que, lorsque je clique sur un des 14 boutons, une fenêtre(GUI ?) spécifique à chaque bouton s'ouvre. Chose que j'arrive à faire pour un seul bouton et c'est là que le problème survient. Je clique sur le bouton "oreillette" et là j'ai une autre fenêtre qui s'ouvre, cependant lorsque je clique sur la croix rouge cette dernière fenêtre se ferme ainsi que la première avec les 14 boutons qui est censé restée ouverte pour me permettre de cliquer sur d'autre boutons etc ...

Voici le code de la fenêtre "oreillette":
► Afficher le texte
Et voici ce que j'ai écrit pour ouvrir la fenêtre "oreillette":
► Afficher le texte
Pouvez-vous corriger mon code, afin que seule la fenêtre "oreillette" se ferme en cliquant sur la croix rouge, laissant la fenêtre "calculateur" toujours active pour me permettre de cliquer sur les autres boutons.

Merci d'avance Miryhan

P.S : J'espère avoir correctement formater le message.

Re: [..] Problème fermeture GUI

Posté : ven. 07 févr. 2014 19:47
par mikell
Quand tu cliques sur la croix, dans la boucle ça commande le 'Exit' => ferme le script
Il faut que ça commande uniquement la fermeture de la gui concernée

Code : Tout sélectionner

   Case $GUI_EVENT_CLOSE
       GuiDelete($Form2)
       Exitloop

Re: [..] Problème fermeture GUI

Posté : ven. 07 févr. 2014 23:56
par Miryhan
Merci à toi problème résolu. J'ai pu faire qu'en cliquant sur un bouton, une fenêtre spécifique aux boutons s'ouvre et en cliquant sur la croix rouge la dite fenêtre se ferme, ceci pour les quatorze boutons.

Cependant seul le bouton "oreillette" me pose un problème :
Je n'arrive pas à rouvrir la fenêtre "oreillette" après l'avoir fermée. Alors que pour les 13 autres boutons aucun soucis. (Testé plusieurs fois)

Voici le code :
► Afficher le texte
J'ai essayé plusieurs "truc" mais cela n'a rien donné.

Miryhan

Re: [..] Problème fermeture GUI

Posté : sam. 08 févr. 2014 00:36
par Tlem
Bonsoir Miryhan.

Votre code est bien long et complexe pour faire aussi peu de chose.
Tout d'abord la répétition des includes n'est pas nécessaire. Déclarez les une seule fois en début de script.

Ensuite, la déclaration de variables c'est bien, mais uniquement si elle sert à quelque chose. Là vous utilisez une variable pour vos labels alors que visiblement vous n'avez pas l'intention de les modifier.

Pour finir, je dirais que les boucles imbriquées on rarement fait bon ménage.
Au lieu d'utiliser une boucle pour chacune de vos fenêtres, utilisez plutôt le mode message avancé : GUIGetMsg(1)
Ou encore plus adapté à la situation, le mode événementiel. ;)

Re: [..] Problème fermeture GUI

Posté : sam. 08 févr. 2014 00:51
par Miryhan
Bonsoir

Bon à savoir pour les includes. Pour les variables, je sais que je vais les utiliser plus tard, mais dans l'immédiat elles ne servent à rien.
Les boucles imbriquées comme vous dites, sont le seul moyen que j'ai trouvé, avec mes connaissances actuelles, pour arriver à mes fins, mais je vais étudier tout ça.

Je met le sujet en résolu, le temps de comprendre le mode événementiel et je le rouvrirai au cas où.

En tout cas merci et bonne nuit, ou pas :)

Re: [R] Problème fermeture GUI

Posté : sam. 08 févr. 2014 03:26
par Miryhan
Je viens de comprendre l'histoire des variables, certaines ne vont me servir à rien.

Voilà ce que j'ai pu sortir après avoir consulter votre lien. Ceci est la fonction "déclenchée" par pression du bouton "oreillette" :
► Afficher le texte
Elle fonctionne comme prévue, tout comme les autres. Une fonction EXIT a été faite et fonctionne comme attendue.

J'ai cependant quelques questions :
-Les commandes Opt("GUIOnEventMode", 0) et Opt("GUIOnEventMode", 1) de la fonction ci-dessus et ce qu'il y a entre, sont ce que j'ai trouvé pour faire fonctionner le tout. Est-ce qu'il existe une autre façon d'ouvrir et de fermée la fenêtre "oreillette" tout en laissant la première ouverte ? J'ai bien essayé avec Opt("GUIOnEventMode", 1), mais pas reussi.
-Est-ce que les #Region ### START Koda GUI section ### Form=e:\autoit\koda\forms\swtor\oreillette.kxf et #EndRegion ### END Koda GUI section ### sont utile au code ?

Merci d'avance

Re: [..] Problème fermeture GUI

Posté : sam. 08 févr. 2014 10:33
par Tlem
Bonjour Miryhan.
Les lignes de commentaires créées par Koda ne sont effectivement pas indispensable (ceci est valable pour toute ligne commençant par un point virgule car ce sont des lignes de commentaire).

Concernant le mode événementiel, il faut le voir différemment du mode normal, car vous devez déterminer explicitement l'action pour chaque élément de l'interface qui doit être utilisé. Lorsque vous construisez une interface graphique, chacun des éléments qui la compose (bouton, label, image, bouton de fermeture, bouton de réduction, etc ...) peut renvoyer un 'message' lorsqu'il est cliqué. Vous pouvez mettre Koda dans ce type de mode (Menu option, 'Générateur de code' puis cochez la case 'Générer le code événementiel').

Vous trouverez ci-dessous un code d'exemple qui utilise le mode événementiel ainsi que quelques indications sur la manière de construire un code dans ce mode :
► Afficher le texte
Vous trouverez ci-dessous pratiquement le même code que ci-dessus (j'ai supprimé le superflu), mais conçu différemment. Cette fois ci nous construisons toute l'interface (y compris les fenêtres secondaires) et on affiche uniquement ce dont on a besoin au moment voulu. Je profite de l'occasion pour vous montrer comment gérer plusieurs GUI avec la même fonction de fermeture ;) :
► Afficher le texte

Re: [..] Problème fermeture GUI

Posté : sam. 08 févr. 2014 11:24
par mikell
Opt("GUIOnEventMode", 1) doit être mis 1 seule fois en début de script
En mode évènementiel GUIGetMsg() ne marche pas
Les #Region peuvent très bien être virés

D'autre part, comme toutes les gui "filles" ont un contenu identique tu peux optimiser le code
► Afficher le texte
Edit
J'avais pas vu ton message Thierry mais comme le code n'est pas réellement un doublon je le laisse :mrgreen:

Re: [..] Problème fermeture GUI

Posté : sam. 08 févr. 2014 19:03
par Miryhan
Bonjour
Merci à vous pour l'aide que vous m’avez apportée.

Je me suis servi du code de Mikell pour pouvoir rendre fonctionnel les 14 boutons radio. Du coup, je peux enfin clore le sujet.

Je sais que d'autre problèmes vont se poser. Cependant je préfère essayer de les résoudre par moi même avant :)

Miryhan