[R] Activer ou désactiver un bouton si un champs est vide

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

[R] Activer ou désactiver un bouton si un champs est vide

#1

Message par lerin57 »

Bonjour, à tous.

En poursuivant mon petit bonhomme de chemin sur autoit, je me suis heurté à un petit soucis.

Voici un exemple qu'un des membres du forum m'avait fournie il y a un petit moment.
► Afficher le texte
Le but ici est d'activer le champ combo2 lorsque le champ combo1 contient une valeur différente de "(aucune)", représentée par la variable $nNot, de même pour le champs input $Complement1

Maintenant si je retire le commentaire sur les lignes

Code : Tout sélectionner

GUICtrlSetState($Continue, $GUI_DISABLE)
et

Code : Tout sélectionner

        Case $nMsg[0] = $Complement1 And $nMsg[1] = $GuiIntro
            If GUICtrlRead($Complement1) = "" Then
                GUICtrlSetState($Continue, $GUI_DISABLE)
            ElseIf GUICtrlRead($Complement1) <> "" Then
                GUICtrlSetState($Continue, $GUI_ENABLE)
            EndIf
Je tente d'activer le bouton représenté par la variable $Continue lorsque le champs input $Complement1 n'est pas vide, et là ... :mrgreen: ... Cela ne fonctionne pas.

J'ai effectué quelque recherche dans l'aide afin de savoir si je doit utiliser plutot une fonction comme GUICtrlGetState ou bien un interpréteur de champ vide, sans succès.

Si quelqu'un a une idée ?
Modifié en dernier par lerin57 le mar. 16 mars 2010 20:22, modifié 4 fois.
Avatar du membre
Narmeke
Niveau 6
Niveau 6
Messages : 247
Enregistré le : mer. 28 oct. 2009 11:31
Localisation : Libourne
Status : Hors ligne

Re: [..]Activer ou desactiver un bouton si un champs est vide

#2

Message par Narmeke »

Si tu enlèves les commentaires d'ici :

Code : Tout sélectionner

;~      Case $nMsg[0] = $Complement1 And $nMsg[1] = $GuiIntro
;~          If GUICtrlRead($Complement1) = "" Then
;~              GUICtrlSetState($Continue, $GUI_DISABLE)
;~          ElseIf GUICtrlRead($Complement1) <> "" Then
;~              GUICtrlSetState($Continue, $GUI_ENABLE)
;~          EndIf
 
Alors tu dois les rajoutez ou enlever ces lignes :

Code : Tout sélectionner

        Case $nMsg[0] = $Combo2 And $nMsg[1] = $GuiIntro
            If GUICtrlRead($Combo2) = $nNot Then
                GUICtrlSetState($Complement1, $GUI_DISABLE)
            ElseIf GUICtrlRead($Combo2) <> $nNot Then
                GUICtrlSetState($Complement1, $GUI_ENABLE)
            EndIf
 
Cordialement Narmeke
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

Re: [..]Activer ou desactiver un bouton si un champs est vide

#3

Message par lerin57 »

Je craint ne pas saisir la nuance.

J'ai ajouté ces commentaire juste pour montrer ce qui fonctionne, et ce qui ne fonctionne pas.

Si je relie votre suggestion, cela ne fait pas avancer mon probleme.

En vous remerciant
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Activer ou désactiver un bouton si un champs est vide

#4

Message par Tlem »

Il faut utiliser GUIRegisterMsg() afin de lire la saisie dans l'InputBox car la boucle de message ne suffit pas.

Je sent poindre la grande question : Mais comment faire. :mrgreen:

Et bien tout récemment, Yogui a proposer un code utilisant cette fonction afin de faire de 'l'Auto-Suggestion' dans un combo ...

En adaptant le code, cela donne quelque chose comme ceci :
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
lerin57
Niveau 4
Niveau 4
Messages : 97
Enregistré le : mer. 30 sept. 2009 12:50
Status : Hors ligne

Re: [..] Activer ou désactiver un bouton si un champs est vide

#5

Message par lerin57 »

Bonsoir,

Que puis-je dire ... Whaou !!!

je suppose que tout réside dans la partie

Code : Tout sélectionner

    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0xFFFF)
Je vais l'étudier en profondeur.

Dans l'immédiat, et comme j'ai un timing relativement serré, je vais me contenter d'un simple condition avec une msgbox (j'ai vu que cela marchait).

Merci tout de même Tlem.

Je clos le sujet.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [r] Activer ou désactiver un bouton si un champs est vide

#6

Message par Tlem »

Tout réside dans cette fonction : GUIRegisterMsg()

Lisez la doc et vous verrez tout ce qu'il est possible de faire ...
J'aurais pu me contenter de capturer la saisie du texte, mais je trouve le fait de gérer les événement comme je l'ai fait, tout aussi bien. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre