[R] Fermeture fenêtre intermédiaire

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

[R] Fermeture fenêtre intermédiaire

#1

Message par Wink »

Bonjour,

Je ne trouve pas de fonction qui puisse ordonner la fermeture d'une fenêtre intermédiaire, et non toutes les fenêtres; je m'explique :

Mon programme commence avec un menu possédant 4 choix, sous forme de bouton :

- Préparation
- Stock
- Achats
- SAV

Lorsque l'on clique sur l'un des 4 boutons, une 2e fenêtre s'ouvre, proposant à son tour 2 choix (toujours sous forme de boutons), et sur cette même fenêtre, je voudrais que mon bouton "retour" puisse faire fermer cette fenêtre intermédiaire, sans fermer la 1ère (menu général)

C'est pourquoi je sollicite votre aide !

Voici le code :
► Afficher le texte
Modifié en dernier par Wink le lun. 08 juin 2009 16:54, modifié 2 fois.
TaPuZ
Niveau 4
Niveau 4
Messages : 75
Enregistré le : jeu. 14 mai 2009 17:10
Status : Hors ligne

Re: Fermeture fenêtre intermédiaire

#2

Message par TaPuZ »

Bonjour.
Pour ma part, mis à part les wend et endswitch de la fin, j'aurais organisé le script un peu différemment.
Par exemple, quand on clique sur $prepa, au lieu d'afficher directement le nouveau menu, j'aurais appelé une nouvelle fonction MenuPrepa().
Dedans, j'organiserai alors à nouveau le tout (que ce soit une fenêtre fille ou pas), et ainsi de suite.
Comme cela, je laisse toujours la possibilité dans une fenêtre de cliquer sur la croix du haut, ou sur un bouton de sortie, et de ne fermer que cette fenêtre en retournant au menu (via une fonction) précédent...
Si cela se trouve, je dis une bêtise, mais c'est ainsi que je l'aurai fait, me permettant même par la suite de complexifier le script à loisir, sans avoir à trop reflechir sur les imbrications de boucles, par exemple...
A bientôt,
T@PµZ.
____________________________________
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#3

Message par Wink »

Effectivement, c'est une bonne idée !

Mais comme je suis un flemmard, je n'ai pas envie de tout réorganiser, parce que j'ai juste donné un extrait du code... l'original est vraiment très (trop) lourd !
Et c'est à cause de mon manque de logique d'ailleurs, si j'avais un peu plus réfléchis, j'aurais mieux organisé mon code, par exemple de la manière dont vous le suggérez.

M'enfin passons, n'existe t-il donc pas un moyen de fermer "juste" cette fenêtre intermédiaire, sans pour autant tout réorganiser ?

Merci d'avance !
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#4

Message par jumby »

Ceci est une possibilité, mais je doute que ce soit pas assez pratique pour vous :

► Afficher le texte
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#5

Message par Wink »

Oui la fonction GUIdelete me conviendrait bien, seulement je rencontre un problème :

- Je lance le .exe, mon 1er menu est créé, toujours avec 4 choix (boutons) (+ 1 "quitter")
- Je clique sur l'un des boutons, et à nouveau une fenêtre est créée avec encore 2 choix + 1 choix retour.

-> Lorsque l'on clique sur "retour", qui est un case auquel j'ai donc associé ce GUIdelete, la fenêtre est effectivement fermée, mais je n'ai plus l'opportunité de refaire un choix (cliquer sur un bouton) de mon menu principal (4 boutons + 1 quitter).

Ainsi j'aimerais savoir s'il était possible et comment, de "réactiver" en quelque sorte le menu précédent celui que je viens de "delete" ?
En gros je souhaiterais pouvoir cliquer sur le bouton "retour", ca fermerait cette 2e fenêtre et ensuite je pourrais à nouveau effectuer un choix dans le menu principal.

Merci de votre aide !
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#6

Message par jumby »

J'ai rajouter le guidelete associé au bouton retour et l'exit associé au bouton quitter.
Cette méthode peut vous paraitre assez lourde puisqu'il ne faut plus passer par la fonction case à cause du guioneventmode, mais il faut définir à chaque fois par quel func passer lorsque l'on clic sur un ctrl avec la fonction : GUIctrlSetOnEvent(-1, "func")
Cette fonction devra être ajouter juste après le guictrl.
► Afficher le texte
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#7

Message par Wink »

Le problème c'est que ca m'oblige à refaire mes 1000 et quelques lignes...
Pas la motive :mrgreen:
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#8

Message par jumby »

Allé un peu de courage, 1000 lignes c'est pas grand chose.
Donne moi ton script si tu veux j'ai rien à faire en ce moment...
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#9

Message par Wink »

Très bien.....

Le voici en pièce jointe !

Ah et une dernière chose : MERCI ! :wink:
Fichiers joints
Statistikorv1.au3
Satistikor
(54.07 Kio) Téléchargé 50 fois
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#10

Message par Wink »

J'en ai marre de ce script !!!!!

Je viens juste de rajouter quelque lignes et me voila avec l'erreur suivante :

Code : Tout sélectionner

C:\Users\vista\Desktop\AutoIt\Statistiques\Statistikorv1.au3 (1871) : ==> "Case" statement with no matching "Select"or "Switch" statement.: 
Case $stock
Alors qu'il ne posait pas de problème jusqu'à maintenant..... :cry:

J'commence à avoir le cerveau en compote à force de m'acharner la-dessus...
J'implore votre aide pour m'aider à résoudre ce mystère supplémentaire ! :oops:

Je joins le script en entier.............

Merci beaucoup
Fichiers joints
Statistikorv1.au3
(77.87 Kio) Téléchargé 69 fois
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#11

Message par jumby »

Il te manque le While 1 et le Switch à la fin (line 1870) :

Code : Tout sélectionner

While 1     
Switch      
    Case $stock
        
        
    Case $achats
        
        
    Case $SAV
    
        
    Case $exit
    Exit
    
    
; -----  Fin du switch et de la boucle "Service" ---------------------------------------------------------------------------------------------------
        
        
    EndSwitch
    
WEnd
Y a encore une erreur pour le case $prepa_trim tu n'as pas du déclarer la variable avant.
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#12

Message par Wink »

Et pourtant non parce qu'ils sont lignes 185 et 188 :

Code : Tout sélectionner

; ----- I.4  Création d'une boucle "attente de saisie" pour le choix du service -----------------------------------------------------------------------


While 1
    $nMsg = GUIGetMsg()
    
    Switch $nMsg
        
    Case $GUI_EVENT_CLOSE
    Exit
        
    Case $prepa
       

Même chose pour le case $prepa_trim que j'ai bien déclaré ligne 221 :

Code : Tout sélectionner

; ----- II.2  Création des 2 boutons "choix de la périodicité" + 1 bouton retour ----------------------------------------------------------------------

            
                $prepa_mensuelle = GUICtrlCreateButton("Mensuelles", 85, 50, 120, 30)
                    GUICtrlSetColor($prepa_mensuelle, 0xff0000)
                    GUICtrlSetBkColor($prepa_mensuelle, 0x000000)
                    GUICtrlSetFont($prepa_mensuelle, 12, 400, "", "Comic Sans MS")
        
                $prepa_trim = GUICtrlCreateButton("Trimestrielles", 85, 90, 120, 30)
                    GUICtrlSetColor($prepa_trim, 0xff0000)
                    GUICtrlSetBkColor($prepa_trim, 0x000000)
                    GUICtrlSetFont($prepa_trim, 12, 400, "", "Comic Sans MS")
                
                
                $prepa_retour = GUICtrlCreateButton("Retour", 100, 140, 90, 30)
                    GUICtrlSetColor($prepa_retour, 0xffffff)
                    GUICtrlSetBkColor($prepa_retour, 0x606060)
                    GUICtrlSetFont($prepa_retour, 14, 800, "", "Comic Sans MS")
 

Je ne comprends pas d'où viennent ces erreurs, surtout que mon programme marchait bien avant que je ne rajoute les case $janvier, $février, $mars etc.. pour les années 2010, 2011 et 2012...

MOI PAS COMPRENDRE !!! :roll:
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#13

Message par jumby »

Voici ton script modifié pour permettre le retour en arrière sans tout quitter. Il faudra poursuivre la même structure et logique pour les autres années si tu comptes les faire.
Fichiers joints
Statistikorv1(modifie).au3
(39.97 Kio) Téléchargé 68 fois
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#14

Message par Wink »

Super merci beaucoup ça marche nickel !!! :mrgreen:

Par contre, pourrais-tu me dire d'ou vient l'erreur, cf nos messages précédents stp :

Ta réponse :

► Afficher le texte

Ma réponse :

► Afficher le texte

Merci beaucoup en tout cas, encore une fois ! 8)
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#15

Message par jumby »

Une petit rajout de Switch au milieu de ton script causait l'erreur.
Fichiers joints
Statistikorv1(modifier).au3
(77.73 Kio) Téléchargé 52 fois
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Fermeture fenêtre intermédiaire

#16

Message par Wink »

Bon ben encore une fois....

UN GRAND MERCI ! :D

Cordialement,

Wink- :wink:
Répondre