J'ai un problème avec mes GUI. J'ai une GUI principale, un bouton qui me permet d'ouvrir une autre GUI et un autre bouton qui ouvre une 3ième GUI.
Si je clique sur le bouton 1 il ouvre ma GUI. Cette GUI possède un bouton "quitter". Si je clique dessus il ferme tout le programme car j'ai mit Exit. Mais si je met Guidelete($magui), il détruit la GUI mais je ne peut pas la réouvrir, en dirait que le programme plante.
Et avec GuiSetState alors ? PAREIL

Voici la structure de mon code :
Code : Tout sélectionner
Global $Form1 = GUICreate("******************", 491, 243, 290, 258)
Global $MenuItem1 = GUICtrlCreateMenu("Fichier")
Global $MenuItem2 = GUICtrlCreateMenu("A propos...")
Global $MenuItem3 = GUICtrlCreateMenuItem("bouton1", $MenuItem1)
Global $MenuItem4 = GUICtrlCreateMenuItem("bouton2", $MenuItem1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $MenuItem3
$Form2 = GUICreate("GUI2", 809, 523, 132, 105)
$Button2 = GUICtrlCreateButton("Quitter", 408, 488, 131, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button1
ACTION
Case $button2
EXIT, GUIDELETE($Form2), GuiSetState(@SW_SHOW) ;tester le problème persiste.
EndSwitch
WEnd
Case $MenuItem4
If FileExists("monfichier") Then ; C'est une condition dans mon programme, si le fichier existe il ouvre la gui.
$Form3 = GUICreate("*********", 809, 523, 132, 105)
$Button3 = GUICtrlCreateButton("Modifier ", 272, 488, 131, 25)
$Button4 = GUICtrlCreateButton("Quitter", 408, 488, 131, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button4
Exit
EndSwitch
WEnd
; Fin chargement interface
Else
MsgBox(64, "Informations", "Erreur")
EndIf
EndSwitch
WEnd
Donc voila, avec cette structure, un "EXIT", "GUIDELETE($form2 ou 3)", "GuiSetState(@SW_SHOW)" ne fonctionne pas.
Il ferme a gui mais impossible de la réouvrir.
J'ai fait une recherche et je suis tomber sur le mode OnEvent.
Je suis tomber sur un petit bout de code, celui-la :
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
$parent1 = GUICreate("Parent1")
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetState(@SW_SHOW)
$parent2 = GUICreate("Parent2")
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetState(@SW_SHOW)
$parent3 = GUICreate("Parent3")
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetState(@SW_SHOW)
While 1
Sleep(10)
WEnd
Func SpecialEvents()
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
If @GUI_WinHandle = $parent1 Then Exit
If @GUI_WinHandle = $parent2 Then GuiDelete( $parent2)
If @GUI_WinHandle = $parent3 Then GuiDelete( $parent3)
EndSelect
EndFunc
MERCI MIKELL ^^
Mais quand j'essaye de l'adapter à mon programme cela ne fonctionne pas.
Je suis encore amateur, la structuration de mes programmes sont encore en mode cochon lol je suis la pour m'améliorer donc tous les conseils sont bon à prendre.
Je vous remercie d'avance pour les éventuelles réponse que vous pourriez m'apporter.