Page 1 sur 1

[R] "Groupe" de contrôles (Agir sur plusieurs contrôles d'un coup)

Posté : sam. 04 juil. 2020 00:45
par someonescripting
Hello, encore moi =D

Petite question, j'ai mon script qui contient beaucoup de checkbox, et j'ai ajouter des menu "tout cocher" et "tout décocher".
Il faut donc que je crée 2 fonctions associés à ces menu, mais cela me ferais faire 59 "GUICtrlSetState($CheckBox1, $GUI_CHECKED)" pour l'une, et re 59 en "UNCHECKED" pour l'autre. (Rien trouvé sur le net ou le forum, j'ai peut être pas le bon therme ...)

Serait il possible de creer une sorte de "groupe" de controles, ce qui me permettrais de faire juste "GUICtrlSetState("GROUPE", $GUI_CHECKED)" pour la première fonction, et "GUICtrlSetState("GROUPE", $GUI_UNCHECKED) pour l'autre ?"

Et évidemment, merci d'avance pour votre aide.

Re: [..] "Groupe" de contrôles (Agir sur plusieurs contrôles d'un coup)  

Posté : sam. 04 juil. 2020 08:37
par mikell
A chaque checkbox créée tu stockes son id dans une array
Tu peux ensuite les cocher/décocher en parcourant l'array avec une simple boucle For...Next

Re: [..] "Groupe" de contrôles (Agir sur plusieurs contrôles d'un coup)

Posté : sam. 04 juil. 2020 15:28
par someonescripting
Salut @mikell

Merci pour l'info, je n'avais encore jamais utilisé d'array ou de boucle For...Next

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>


Opt("MustDeclareVars", 1) ;Les variables doivent être déclarés.
Opt("GUIOnEventMode", 1) ;Active le mode événementiel.

Global $StopScript = False

Global $hGUI = GUICreate("GUI", 200, 100)
Global $idCheckbox1 = GUICtrlCreateCheckbox("Confirmation de suppression", 10, 10, 185, 25)
Global $idCheckbox2 = GUICtrlCreateCheckbox("Theme sombre", 10, 30, 185, 25)
Global $idButton = GUICtrlCreateButton("Tout cocher", 10, 70, 185, 25)
Global $ArrayCB[2]
$ArrayCB[0] = $idCheckbox1
$ArrayCB[1] = $idCheckbox2
GUISetState(@SW_SHOW, $hGUI)

GUISetOnEvent ($GUI_EVENT_CLOSE, "CLOSE")
GUICtrlSetOnEvent ($idButton, "ALLCHECK")


While Not $StopScript
	Sleep (100)
WEnd

Func ALLCHECK()
 	For $i = 0 To 1
		GUICtrlSetState ($ArrayCB[$i], $GUI_CHECKED)
	Next
EndFunc

Func CLOSE()
	$StopScript = True
EndFunc