Bonsoir
y'a beaucoup d'erreur dans ta gestion des tableaux.
1/ For $i = 0 yo Ubound($array)
-1
2/ c pas une erreur mais ca sert à rien Step 1, la boucle for incrémente toujours de 1 si Step n'est pas spécifier
Maintenant voila comment je fais:
Code : Tout sélectionner
Local $aCheckBoxs[6][3] = [ [5, 0, 0], _ ; Ici initialisation du tableau [6] éléments (le 1er [0] pour stocker le nombre de chkb, [3] colonnes, donc [5] sur la 1ere ligne
["Nom 1", True], _ ; Ici La 1ere Chkb, texte "Nom1", et on la veux coché
["Nom 2"], _
["Nom 3", True], _
["Nom 4"], _
["Nom 5"]]
Local $Left = 10, $Top = 30
; Ici on va lire le tableau en partant de 1, jusqu'a 5 ( $aCheckBoxs[0][0] ) donc on va créer 5 chkb, le $i va représenter les ligne du tableau
For $i = 1 To $aCheckBoxs[0][0]
$aCheckBoxs[$i][2] = GUICtrlCreateCheckbox($aCheckBoxs[$i][0], $Left, $Top * $i), ici je stocke le CtrlId dans la 3ème colonne $aCheckBoxs[$i][2], et je prends le texte dans le tableau la 1ere colonne $aCheckBoxs[$i][0]
If $aCheckBoxs[$i][1] Then GUICtrlSetState(-1, $GUI_CHECKED), ici je vérifie la 2eme colonne pour coché ou non la ckb
Next
Maintenant pour lire les valeurs c'est pareil dans l'autre sens
Code : Tout sélectionner
For $i = 1 To $aCheckBoxs[0][0]
$aCheckBoxs[$i][1] = False
If _IsChecked($aCheckBoxs[$i][2]) Then
$aCheckBoxs[$i][1] = True
ConsoleWrite("ChkB: " &$aCheckBoxs[$i][2] & " Text: " & $aCheckBoxs[$i][0] & " est coché" & @LF)
EndIf
Next
Func _IsChecked($h_ctrl)
Return BitAND(GUICtrlRead($h_ctrl), $GUI_CHECKED) = $GUI_CHECKED
EndFunc ;==>_IsChecked
Alors explication, je créer un tableau à 2 dimension, pour définir et stocker les ID des contrôles.
Écris de cette façon je trouve que la création de tableau est plus claire, Donc on a 5 checkboxs, et le tableau a 3 colonnes dans la 2eme dimmension, pour stocker le texte utilisé au moment de la création, en suite si on veut l’état coché à la création, et dans la dernière le CtrlId