Fonction pour presser un bouton radio

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
littlechiki
Niveau 3
Niveau 3
Messages : 30
Enregistré le : sam. 13 avr. 2019 12:58
Status : Hors ligne

Fonction pour presser un bouton radio  

#1

Message par littlechiki » mer. 01 mai 2019 15:43

Bonjour,
Je cherche à créer une fonction qui me permettrait de cocher un bouton radio simplement en appuyant sur une touche de mon clavier.
Imaginons que j'appuie sur la touche 1, un bouton radio se coche. en appuyant sur 2, un autre se coche.
Merci pour vos réponses !

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5864
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Fonction pour presser un bouton radio

#2

Message par mikell » mer. 01 mai 2019 16:18

Il y a plusieurs façons, par exemple :

#include <GUIConstantsEx.au3>

GUICreate("", 225, 80)
$un = GUICtrlCreateRadio("touche 1", 10, 50, 65, 25)
$deux = GUICtrlCreateRadio("touche 2", 80, 50, 65, 25)
$d1 = GUICtrlCreateDummy()
$d2 = GUICtrlCreateDummy()
Local $aAccelKeys[2][2] = [["{NUMPAD1}", $d1],["{NUMPAD2}", $d2]]
GUISetAccelerators($aAccelKeys)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $d1
            GUICtrlSetState ($un, $GUI_CHECKED)
        Case $d2
            GUICtrlSetState ($deux, $GUI_CHECKED)
    EndSwitch
WEnd
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
mdanielm
Membre émérite
Membre émérite
Messages : 233
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: Fonction pour presser un bouton radio

#3

Message par mdanielm » mer. 01 mai 2019 18:01

Sans Dummy:
GUICreate("", 225, 80)
        $un = GUICtrlCreateRadio("touche 1", 10, 50, 65, 25)
        $deux = GUICtrlCreateRadio("touche 2", 80, 50, 65, 25)
        GUISetState()

        do
                if _IsPressed("61") then
                        GUICtrlSetState ($un, $GUI_CHECKED)
                elseif _IsPressed("62") then
                        GUICtrlSetState ($deux, $GUI_CHECKED)
                EndIf
        until GUIGetMsg()=$GUI_EVENT_CLOSE

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 693
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: Fonction pour presser un bouton radio

#4

Message par walkson » mer. 01 mai 2019 19:06

Une autre méthode
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
GUICreate("", 225, 80)
$un = GUICtrlCreateRadio("touche 1", 10, 50, 65, 25)
$deux = GUICtrlCreateRadio("touche 2", 80, 50, 65, 25)
$trois = GUICtrlCreateRadio("touche 3", 150, 50, 65, 25)
HotKeySet("{NUMPAD1}", "un")
HotKeySet("{NUMPAD2}", "deux")
HotKeySet("{NUMPAD3}", "trois")
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
Func un()
GUICtrlSendMsg($un, $BM_CLICK , 1, 0)
EndFunc
Func deux()
GUICtrlSendMsg($deux, $BM_CLICK , 1, 0)
EndFunc
Func trois()
GUICtrlSendMsg($trois, $BM_CLICK , 1, 0)
EndFunc
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5864
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Fonction pour presser un bouton radio

#5

Message par mikell » mer. 01 mai 2019 21:02

@walkson
Personnellement je ne recommanderais pas la méthode HotkeySet sur une touche, parce qu'elle accapare cette touche ce que ne font pas _IsPressed et les accélérators
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

littlechiki
Niveau 3
Niveau 3
Messages : 30
Enregistré le : sam. 13 avr. 2019 12:58
Status : Hors ligne

Re: Fonction pour presser un bouton radio

#6

Message par littlechiki » mer. 01 mai 2019 21:26

Merci à tous pour vos réponses ! avec ça, j'ai plein de façons de m'en sortir ! Merci merci !

Répondre