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

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
:wink: