Page 1 sur 1
[R] Hotkeyset pour decocher ou cocher une checkbox
Posté : ven. 10 oct. 2014 06:01
par zeburrin
Bonjour je suis débutant en autoit et la programmation en général et je vient vous demander de l'aide .
Voila je voudrait pouvoir cocher ou décocher une checkbox avec la meme Hotkey.
Code : Tout sélectionner
HotKeySet("{F2}", "cocherdecochercheckbox")
Func cocherdecochercheckbox()
GUICtrlSetState($checkbox, 1) ; cocher la checkbox
[color=#00BF00]; j'avais pense a continuer avec ça mais je pense que je suis dans l'erreur :
;If guitctrlread(checkbox) = 1 then
; GUICtrlSetState($checkbox, 0) ; decocher la checkbox
;Endif[/color]
EndFunc
je pense que ce ne doit pas être compliquer mais je ne sait vraiment pas comment continuer ma fonction pour pouvoir cocher ou décocher la checkbox .
merci d'avance.
Re: [..] Hotkeyset pour decocher ou cocher une checkbox
Posté : ven. 10 oct. 2014 07:17
par Tlem
Bonjour.
Vous devez tester l'état de la CheckBox. Vous trouverez sur le forum la fonction _IsChecked().
Après, dans votre fonction cocherdecochercheckbox(), il suffit de tester l'état et de faire l'action conséquente (If ...Then...Else...).
Envoyé depuis mon mobile en utilisant Tapatalk.
Re: [R] Hotkeyset pour decocher ou cocher une checkbox
Posté : ven. 10 oct. 2014 08:42
par zeburrin
Merci pour votre réponse cela ma indiquer la marche a suivre.
pour décocher une checkbox avec GUICtrlSetState la valeur est de 4
Code : Tout sélectionner
Func cocherdecocherlacheckbox()
If _IsChecked($checkbox) = 0 then
GUICtrlSetState($checkbox, 1) ; cocher la checkbox
Else
GUICtrlSetState($checkbox, 4) ; decocher
EndIf
EndFunc
Func _IsChecked($checkbox)
Return BitAnd(GUICtrlRead($checkbox),$GUI_CHECKED) = $GUI_CHECKED
EndFunc
Problème résolu , merci encor.
Re: [R] Hotkeyset pour decocher ou cocher une checkbox
Posté : ven. 10 oct. 2014 11:12
par TommyDDR
"La valeur est de 4" -> $GUI_UNCHECKED = 4
Si vous utilisez $GUI_CHECKED dans votre fonction "_IsChecked c'est que vous avez fait l'unclude qui va avec, donc autant utiliser les constantes partout
Sinon, une best practice quand on fait un if qui contient un else, on évite de tester la "non condition", autant tester si la condition est vraie et inverser le code avec le else, cela ne changera pas votre code, évitera une opération supplémentaire et vous vous y retrouverez mieux.
Si la case est cochée, on la décoche sinon on la coche
Au lieu de
Si la case n'est pas cochée, on la coche, sinon on la décoche
► Afficher le textecode
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
Opt("MustDeclareVars", 1)
HotKeySet("²", "cocherdecocherlacheckbox")
Global $taille[2] = [300, 300]
Global $gui
$gui = GUICreate("", $taille[0], $taille[1])
GUISetOnEvent($GUI_EVENT_CLOSE, "quit", $gui)
Global $checkbox = GUICtrlCreateCheckbox("aze", 10, 10)
GUISetState(@SW_SHOW, $gui)
While(True)
Sleep(100)
WEnd
Func cocherdecocherlacheckbox()
If _IsChecked($checkbox) then
GUICtrlSetState($checkbox, $GUI_UNCHECKED) ; decocher
Else
GUICtrlSetState($checkbox, $GUI_CHECKED) ; cocher la checkbox
EndIf
EndFunc
Func _IsChecked($checkbox)
Return BitAnd(GUICtrlRead($checkbox),$GUI_CHECKED) = $GUI_CHECKED
EndFunc
Func quit()
Exit
EndFunc
Re: [R] Hotkeyset pour decocher ou cocher une checkbox
Posté : ven. 10 oct. 2014 19:54
par mikell
Code : Tout sélectionner
Func cocherdecocherlacheckbox()
GUICtrlSetState($checkbox, GuiCtrlRead($checkbox) = 1 ? $GUI_UNCHECKED : $GUI_CHECKED)
EndFunc
