Page 1 sur 1
[R]Problème de fermeture de GUI
Posté : lun. 22 mars 2010 13:27
par xabu
Bonjour à tous,
Je commence juste à utiliser les GUIs, et je rencontre des petits problèmes pour gérer leurs fermetures...
Je vous explique, en fait j'ai créer une GUI à partir d'information contenu dans un tableau, l'objectif est que si j'intègre de nouvelles informations dans mon tableau, le GUI intègre automatiquement ces nouvelles informations... Jusque là tout fonctionne ...
Mon problème, c'est que une fois que j'ai fait un choix dans cette GUI (bouton radio) elle reste toujours active... tant que le script AutoIt n'est pas terminé.
Voici le code :
► Afficher le texte
Code : Tout sélectionner
#cs##############################################################################################################
#
# GUI : Permet de choisir dans quel Domaine intégrer la machine.
#
#ce##############################################################################################################
; Listes des includes nécessaire au fonctionnement du script
;--------------------------------------------------------------------------------------------------------------------
#include <Array.au3>
#include <GUIConstantsEx.au3>
; Définition du tableau contenant les différentes valeurs de domaine. (à modifier pour ajouter de nouveaux domaines).
;--------------------------------------------------------------------------------------------------------------------
Dim $DomArray[3]
$DomArray[0] = "Hors Domaine"
$DomArray[1] = "Domaine-1"
$DomArray[2] = "Doamine-2"
; Définition des varaibles
;--------------------------------------------------------------------------------------------------------------------
Local $i,$dom,$msg,$x,$y,$size,$Join_To_Dom,$b
$size=Ubound($DomArray)
; Fonction création de l'interface Graphique
;--------------------------------------------------------------------------------------------------------------------
Func GUI_Check ($Array)
Dim $Radio[$size]
$i=0
$y=20
$x=0
GUICreate ( "CHOISISSEZ LE DOMAINE : ",360,$size*13+20)
For $element In $Array
$Radio[$i]=GUICtrlCreateRadio($element,$x*120+10,$y, 100, 20)
$i=$i+1
$x=$x+1
if $x=3 Then
$x=0
$y=$y+30
EndIf
Next
GUISetState()
$b=0
while $b=0
$msg = GUIGetMsg()
$i = 0
While $i<$size
If GUICtrlRead($Radio[$i]) = $GUI_CHECKED Then
$Join_To_Dom = $DomArray[$i]
$b = 1
ExitLoop
EndIf
$i = $i +1
WEnd
WEnd
EndFunc
; Démarrage de l'interface Graphique
;----------------------------------------------------------------------------------------------------------------------
GUI_Check($DomArray)
MsgBox(64, 'Information : ', 'Le poste sera intégré dans le domaine suivant : '&$Join_To_Dom,5)
Beep(200,1000)
Sleep(2000)
Infos complémentaires :
Ne pas gérer la fermeture de la fenêtre par la croix est volontaire.
Je n'ai pas trouvé de solution pour utiliser select et case dans ma boucle...
Objectif :
Fermer la fenêtre dés qu'un un choix a été fait ...
Merci d'avance...
Re: [..]Problème de fermeture de GUI
Posté : lun. 22 mars 2010 14:23
par matwachich
Indice (je sais pas si sa va servir!):
Re: [..]Problème de fermeture de GUI
Posté : lun. 22 mars 2010 15:03
par scorp84
Bonjour xabu,
En ajoutant un "Exit" après ton dernier sleep, ça t'affiche ton message comme quoi j'intègre bien tel domaine et une fois que je clique sur le msgbox, ça me ferme ta GUI.
Amicalement.
BM
Re: [..]Problème de fermeture de GUI
Posté : lun. 22 mars 2010 15:53
par xabu
Merci de votre aide,
la solution a été donnée par matwachich il faut utiliser :
Voici le code fonctionnel :
► Afficher le texte
Code : Tout sélectionner
#cs##############################################################################################################
#
# GUI : Permet de choisir dans quel Domaine intégrer la machine.
#
#ce##############################################################################################################
; Listes des includes nécessaire au fonctionnement du script
;--------------------------------------------------------------------------------------------------------------------
#include <Array.au3>
#include <GUIConstantsEx.au3>
; Definition du tableau contenant les différentes valeurs de dommaine. (seul point a modifier pour ajouter de nouveaux domaines.
;--------------------------------------------------------------------------------------------------------------------
Dim $DomArray[3]
$DomArray[0] = "Hors Domaine"
$DomArray[1] = "Domaine-1"
$DomArray[2] = "Doamine-2"
;$DomArray[3] = "Domaine-3"
;$DomArray[4] = "Domaine-4"
;$DomArray[5] = "Doamine-5"
; Définition des varaibles
;--------------------------------------------------------------------------------------------------------------------
Local $i,$dom,$msg,$x,$y,$size,$Join_To_Dom,$b
$size=Ubound($DomArray)
; Définitions Fonction création de l'interface Graphique
;--------------------------------------------------------------------------------------------------------------------
Func GUI_Check ($Array)
Dim $Radio[$size]
$i=0
$y=20
$x=0
GUICreate ( "CHOISISSEZ LE DOMAINE : ",360,$size*13+20)
For $element In $Array
$Radio[$i]=GUICtrlCreateRadio($element,$x*120+10,$y, 100, 20)
$i=$i+1
$x=$x+1
if $x=3 Then
$x=0
$y=$y+30
EndIf
Next
GUISetState()
$b=0
while $b=0
$msg = GUIGetMsg()
$i = 0
While $i<$size
If GUICtrlRead($Radio[$i]) = $GUI_CHECKED Then
$Join_To_Dom = $DomArray[$i]
$b = 1
GUISetState(@SW_HIDE)
ExitLoop
EndIf
$i = $i +1
WEnd
WEnd
EndFunc
; Démarrage de l'interface Graphique
;----------------------------------------------------------------------------------------------------------------------
GUI_Check($DomArray)
MsgBox(64, 'Information : ', 'Le poste sera intégré dans le domaine suivant : '&$Join_To_Dom,5)
Beep(200,1000)
Sleep(6000)
scorp84 : en fait si je mets un exit, je sort de mon script, et je ne souhaite pas en sortir, en effet derrière cette réponse j'ai encore du script qui génère des fichiers de configuration permettant l'intégration au domaine choisi.
Encore merci, je le passe en résolu
Edit : Juste au cas où, s'il y a une autre solution que masquer la fenêtre je suis preneur