[R] Problème fermeture GUI

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Miryhan
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 07 févr. 2014 17:49
Status : Hors ligne

[R] Problème fermeture GUI

#1

Message 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.
Modifié en dernier par Miryhan le sam. 08 févr. 2014 19:04, modifié 5 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Problème fermeture GUI

#2

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Miryhan
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 07 févr. 2014 17:49
Status : Hors ligne

Re: [..] Problème fermeture GUI

#3

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème fermeture GUI

#4

Message 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. ;)
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é".
Miryhan
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 07 févr. 2014 17:49
Status : Hors ligne

Re: [..] Problème fermeture GUI

#5

Message 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 :)
Miryhan
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 07 févr. 2014 17:49
Status : Hors ligne

Re: [R] Problème fermeture GUI

#6

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème fermeture GUI

#7

Message 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
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
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Problème fermeture GUI

#8

Message 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:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Miryhan
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 07 févr. 2014 17:49
Status : Hors ligne

Re: [..] Problème fermeture GUI

#9

Message 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
Répondre