j'utilise 2 liste de radio boutons (séparer par "GuiCtrlCreateGroup") et les choix dans la première liste influe sur ceux de la deuxième. J'ai donc trouvé la solution de griser les contrôles de la deuxième liste en utilisant la fonction "ControlDisable" cela fonctionne plutôt bien. MAIS il y a un mais !
si comme dans l'exemple ci-dessous je grise le premier élément de la deuxième liste, et que je navigue au clavier (tabulation) mon focus ne passe plus dans la seconde liste
comment faire !!!!
Pour tester l'exemple ci-dessous il faut Sélectionner le premier radio de la première liste et tenter de d'atteindre la deuxième liste par la tabulation !
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
_Main()
Func _Main()
Local $filemenu, $fileitem, $recentfilesmenu, $separator1
Local $exititem, $helpmenu, $aboutitem, $Precbutton, $Suivantbutton
Local $msg, $file, $radio1, $radio2, $radio3, $radio4
Local $msg, $file, $radio5, $radio6, $radio7, $radio8
Local $questradio1, $questradio2, $questradio3, $questradio4
local $num, $lastrep,$var
$var = IniReadSection(@MyDocumentsDir &"\sosie\quest.ini", "lastrep")
If @error Then
MsgBox(4096, "", "Error occurred, probably no INI file.")
Else
For $i = 1 To $var[0][0]
MsgBox(4096, "", "Key: " & $var[$i][0] & @CRLF & "Value: " & $var[$i][1])
Next
EndIf
#forceref $separator1
$num = IniRead(@MyDocumentsDir &"\sosie\quest.ini", "lastrep", "numero", "NotFound")
$questradio1 = IniRead(@MyDocumentsDir &"\sosie\quest.ini", $num, "1", "NotFound")
$questradio2 = IniRead(@MyDocumentsDir &"\sosie\quest.ini", $num, "2", "NotFound")
$questradio3 = IniRead(@MyDocumentsDir &"\sosie\quest.ini", $num, "3", "NotFound")
$questradio4 = IniRead(@MyDocumentsDir &"\sosie\quest.ini", $num, "4", "NotFound")
GUICreate("question" &$num, 600, 400)
GuiCtrlCreateLabel("Choisissez la phrase qui vous décrit le MIEUX (positif) puis vous choisirez la phrase qui vous décrit le MOINS (négatif)", 10, 10, 590, 20)
$filemenu = GUICtrlCreateMenu("File")
$fileitem = GUICtrlCreateMenuItem("Open...", $filemenu)
$recentfilesmenu = GUICtrlCreateMenu("Recent Files", $filemenu)
$separator1 = GUICtrlCreateMenuItem("", $filemenu)
$exititem = GUICtrlCreateMenuItem("Exit", $filemenu)
$helpmenu = GUICtrlCreateMenu("?")
$aboutitem = GUICtrlCreateMenuItem("About", $helpmenu)
GuiCtrlCreateGroup("Positif", 30, 30, 440, 115)
$radio1 = GUICtrlCreateRadio($questradio1, 60, 60, 400, 20)
$radio2 = GUICtrlCreateRadio($questradio2, 60, 80, 400, 20)
$radio3 = GUICtrlCreateRadio($questradio3, 60, 100, 400, 20)
$radio4 = GUICtrlCreateRadio($questradio4, 60, 120, 400, 20)
GUICtrlCreateGroup ("",-99,-99,1,1) ;close group
GuiCtrlCreateGroup("Négatif", 30, 150, 440, 115)
$radio5 = GUICtrlCreateRadio($questradio1, 60, 180, 400, 20)
$radio6 = GUICtrlCreateRadio($questradio2, 60, 200, 400, 20)
$radio7 = GUICtrlCreateRadio($questradio3, 60, 220, 400, 20)
$radio8 = GUICtrlCreateRadio($questradio4, 60, 240, 400, 20)
GUICtrlCreateGroup ("",-99,-99,1,1) ;close group
$Suivantbutton = GUICtrlCreateButton("Suivant", 180, 320, 70, 20)
$Precbutton = GUICtrlCreateButton("Retour", 50, 320, 70, 20)
GUISetState()
$file = FileOpen(@MyDocumentsDir &"\sosie\sosie.ini", 10) ;création du fichier ini si inexistant sur le poste.
If $file = -1 Then
MsgBox(0, "Error", "ne peux pas ouvrir le fichier résultat")
Exit
EndIf
FileClose($file)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $fileitem
$file = FileOpenDialog("Choose file...", @TempDir, "All (*.*)")
If @error <> 1 Then GUICtrlCreateMenuItem($file, $recentfilesmenu)
Case $msg = $exititem
ExitLoop
Case $msg = $radio1 And BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED
;GUICtrlSetData($radio5,"ne peut être choisi")
ControlDisable ( "question" &$num, "", $radio5)
Case $msg = $Suivantbutton
;IniWrite(@MyDocumentsDir &"\sosie\sosie.ini","", "positif", "a") ;mise en mémoire de la derniere question
Select
case BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED
IniWrite(@MyDocumentsDir &"\sosie\sosie.ini",$num, "positif", "a")
case BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED
IniWrite(@MyDocumentsDir &"\sosie\sosie.ini",$num, "positif", "b")
case BitAND(GUICtrlRead($radio3), $GUI_CHECKED) = $GUI_CHECKED
IniWrite(@MyDocumentsDir &"\sosie\sosie.ini",$num, "positif", "c")
case BitAND(GUICtrlRead($radio4), $GUI_CHECKED) = $GUI_CHECKED
IniWrite(@MyDocumentsDir &"\sosie\sosie.ini",$num, "positif", "d")
EndSelect
Select
case BitAND(GUICtrlRead($radio5), $GUI_CHECKED) = $GUI_CHECKED
IniWrite(@MyDocumentsDir &"\sosie\sosie.ini",$num, "négatif", "a")
case BitAND(GUICtrlRead($radio6), $GUI_CHECKED) = $GUI_CHECKED
IniWrite(@MyDocumentsDir &"\sosie\sosie.ini",$num, "négatif", "b")
case BitAND(GUICtrlRead($radio7), $GUI_CHECKED) = $GUI_CHECKED
IniWrite(@MyDocumentsDir &"\sosie\sosie.ini",$num, "négatif", "c")
case BitAND(GUICtrlRead($radio8), $GUI_CHECKED) = $GUI_CHECKED
IniWrite(@MyDocumentsDir &"\sosie\sosie.ini",$num, "négatif", "d")
EndSelect
$num=$num+1
GUICtrlSetData($radio4,"test")
Case $msg = $Precbutton
MsgBox(0, "Click", "You clicked prec!")
Case $msg = $aboutitem
MsgBox(0, "About", "GUI Menu Test")
EndSelect
WEnd
GUIDelete()
Exit
EndFunc ;==>_Main


