[R] Griser des éléments d'une GUI en fonction d'un checkbox

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

[R] Griser des éléments d'une GUI en fonction d'un checkbox

#1

Message par pierrotm777 »

Bonjour,

Je souhaite rendre inutilisable, un combo, un checkbox si un autre checkbox est actif !

Voici mon code:
► Afficher le texte
Mais les éléments restent toujours grisés
Modifié en dernier par pierrotm777 le lun. 14 févr. 2011 13:07, modifié 1 fois.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Griser des éléments d'une GUI en fonction d'un chec

#2

Message par zeshrek »

1/ cette question a déjà été traitée récemment
2/ le script que tu nous donne est incomplet, il manque entre autres la boucle qui attend qu'il se passe quelquechose dedans. du coup il se ferme a peine ouvert
3/ dans ton exemple tu ne nous dis pas ce qu'il faudrait (des)activer en fonction de quel checkbox

Du coup, heureusement que tu as respecté les regles de présentation des messages sinon, je t'envoyais bouller...

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 633, 454, 192, 114)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 312, 48, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 312, 176, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 312, 288, 97, 17)
$Combo1 = GUICtrlCreateCombo("Combo", 40, 48, 145, 25)
GUICtrlSetData(-1, "Choix 1|Choix 2|Choix 3")
$Group1 = GUICtrlCreateGroup("Group1", 40, 144, 185, 105)
$Radio1 = GUICtrlCreateRadio("Radio1", 56, 168, 113, 17)
$Radio2 = GUICtrlCreateRadio("Radio2", 56, 192, 113, 17)
$Radio3 = GUICtrlCreateRadio("Radio3", 56, 216, 113, 17)
$Checkbox4 = GUICtrlCreateCheckbox("Checkbox4", 48, 296, 97, 17)
GUISetState(@SW_SHOW)

;~ début du script on désactive les controles soumis a activation

GUICtrlSetState($Combo1, $GUI_DISABLE)

GUICtrlSetState($Radio1, $GUI_DISABLE)
GUICtrlSetState($Radio2, $GUI_DISABLE)
GUICtrlSetState($Radio3, $GUI_DISABLE)

GUICtrlSetState($Checkbox4, $GUI_DISABLE)




While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Checkbox1
            If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
                GUICtrlSetState($Combo1, $GUI_ENABLE)
            Else
                GUICtrlSetState($Combo1, $GUI_DISABLE)
            EndIf
        Case $Checkbox2
            If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
                GUICtrlSetState($Radio1, $GUI_ENABLE)
                GUICtrlSetState($Radio2, $GUI_ENABLE)
                GUICtrlSetState($Radio3, $GUI_ENABLE)
            Else
                GUICtrlSetState($Radio1, $GUI_DISABLE)
                GUICtrlSetState($Radio2, $GUI_DISABLE)
                GUICtrlSetState($Radio3, $GUI_DISABLE)
            EndIf
        Case $Checkbox3
            If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
                GUICtrlSetState($Checkbox4, $GUI_ENABLE)
            Else
                GUICtrlSetState($Checkbox4, $GUI_DISABLE)
            EndIf
    EndSwitch
WEnd
Si vis pacem para bellum
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Griser des éléments d'une GUI en fonction d'un chec

#3

Message par pierrotm777 »

Merci tout de même :D .

Mon erreur était de ne pas faire de test dans la boucle elle même.
:mrgreen:

Mercit encore
Répondre