Page 1 sur 1
[..] Problème avec les Radio
Posté : jeu. 08 avr. 2010 18:23
par periaz
Bonsoir,
Je commence à apprendre les GUI et j'ai un petit problème. J'ai fait quelques recherches sur la doc et le reste mais je ne trouve pas.
Lorsque je clique sur "ok", la message box apparait alors que je n'ai coché aucune radio. Je voudrais que lorsque je coche les radios, il ne se passe rien tant que je n'ai pas appuyé sur "ok". Il y a aussi un autre problème, c'est que les messages box apparraissent mais la GUI ne se ferme pas comme je lui ai demandé =S
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
_Choix()
Func _Choix()
Local $msg, $francais, $anglais, $americain, $Button_1
GUICreate("Choisissez votre Test !", 150, 140)
GUISetState(@SW_SHOW)
GUICtrlCreateLabel ("Cochez votre Test :", 32, 15)
$americain = GUICtrlCreateRadio ("Américain", 40, 40)
$anglais = GUICtrlCreateRadio ("Anglais", 40, 60)
$francais = GUICtrlCreateRadio ("Français", 40, 80)
$Button_1 = GUICtrlCreateButton("Ok", 50, 105, 60)
While 1
$msg = GUIGetMsg()
Switch $msg = $Button_1
Case $americain And BitAND(GUICtrlRead($americain), $GUI_CHECKED) = $GUI_CHECKED
_americain()
ExitLoop
Case $anglais And BitAND(GUICtrlRead($anglais), $GUI_CHECKED) = $GUI_CHECKED
_anglais()
ExitLoop
Case $francais And BitAND(GUICtrlRead($francais), $GUI_CHECKED) = $GUI_CHECKED
_francais()
ExitLoop
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
GUIDelete()
EndFunc
Func _francais()
sleep(2000)
msgbox(0, "ok", "fr")
EndFunc
Func _anglais()
sleep(2000)
msgbox(0, "ok", "en")
EndFunc
Func _americain()
sleep(2000)
msgbox(0, "ok", "us")
EndFunc
D'avance merci,
Periaz
Re: [..] Problème avec les Radio
Posté : jeu. 08 avr. 2010 20:55
par Tlem
Je ferais ceci :
► Afficher le texte
Code : Tout sélectionner
Func _Choix()
Local $msg, $francais, $anglais, $americain, $Button_1
GUICreate("Choisissez votre Test !", 150, 140)
GUISetState(@SW_SHOW)
GUICtrlCreateLabel ("Cochez votre Test :", 32, 15)
$americain = GUICtrlCreateRadio ("Américain", 40, 40)
$anglais = GUICtrlCreateRadio ("Anglais", 40, 60)
$francais = GUICtrlCreateRadio ("Français", 40, 80)
GUICtrlSetState(-1, $GUI_CHECKED)
$Button_1 = GUICtrlCreateButton("Ok", 50, 105, 60)
While 1
$msg = GUIGetMsg()
Switch $msg
Case $Button_1
If BitAND(GUICtrlRead($americain), $GUI_CHECKED) = $GUI_CHECKED Then _americain()
If BitAND(GUICtrlRead($anglais), $GUI_CHECKED) = $GUI_CHECKED Then _anglais()
If BitAND(GUICtrlRead($francais), $GUI_CHECKED) = $GUI_CHECKED Then _francais()
ExitLoop
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
GUIDelete()
EndFunc
et j'enlèverais les
Sleep(2000) des fonctions.

Re: [..] Problème avec les Radio
Posté : jeu. 08 avr. 2010 21:19
par periaz
Extra Tlem !
Je rentrais du sport et je m'étais penché sur une fonction qui aurait pu marché mais tu as été plus vite que moi.
Je te remercie. Par contre, c'est obligé que la case français soit coché par défaut ?
Encore merci !
Periaz
Re: [..] Problème avec les Radio
Posté : jeu. 08 avr. 2010 21:40
par Tlem
Vous pouvez choisir n'importe quel bouton radio par défaut.
Je vous conseille d'en mettre un, car sinon vous serez obligez de gérer le cas du 'aucun choix' qui rajoutera bêtement plusieurs ligne de code pour pas grand chose.

Re: [..] Problème avec les Radio
Posté : jeu. 08 avr. 2010 22:15
par periaz
OkOK, je vous remercie encore.
Re: [..] Problème avec les Radio
Posté : jeu. 08 avr. 2010 22:38
par Tlem
N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.