[R] Combobox détection du changement (onchange)

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
lord1366
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 28 mai 2008 18:15
Status : Hors ligne

[R] Combobox détection du changement (onchange)

#1

Message par lord1366 »

Bonjour,

Je voudrais détecter le changement de choix dans un select ou combobox (comme un onchange en javascript)

J'arrive à récupérer le contenu de $BtChoixType avec GUICtrlRead($ComboBoxType)

Ce que je voudrais c'est que si je change de choix pour Local ou pour le 2ème index alors le contenu d'un autre champs soit modifié.

Code : Tout sélectionner

;Menu deroulant
$BtChoixType = GUICtrlSetData($ComboBoxType, "Distant|Local","Distant")
GUICtrlSetOnEvent($BtChoixType, "test")

;Input a modifier
$AddrServeur = GuiCtrlCreateInput($Server & ":" & $Port,345, 10, 150, 21,$ES_READONLY)

 
Merci pour votre aide.
Modifié en dernier par lord1366 le jeu. 16 juil. 2009 12:25, modifié 1 fois.
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] Combobox détection du changement (onchange)

#2

Message par jumby »

Pour détecter le changement de choix dans un combobox, le plus simple est de passer par la bonne vieille fonction case.

Voici comment vous-y prendre pour détecter le changement de choix pour Local :

Code : Tout sélectionner

        Case $ComboBoxType
            $ComboBoxReadValue = GUICtrlRead($ComboBoxType)
            If $ComboBoxReadValue = "Local" Then
                call ("Localisselect")
            EndIf
La fonction Localisselect sera exécutée lorsque Local sera sélectionné, à vous de garnir votre fonction pour changer votre Input en conséquence.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Combobox détection du changement (onchange)

#3

Message par Iste »

heu sinon

Code : Tout sélectionner

#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)

Example()

Func Example()
    Local $msg
    GUICreate("My GUI combo")  ; will create a dialog box that when displayed is centered

    GUICtrlCreateCombo("item1", 10, 10) ; create first item
    GUICtrlSetData(-1, "item2|item3", "item3") ; add other item snd set a new default

    GUISetState()

    ; Run the GUI until the dialog is closed
    While 1
        $msg = GUIGetMsg()
        
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc   ;==>Example
pas facile a trouver faut dire, c'est bien caché dans la doc :p
donc, GUIGetMsg() renvoi l'ID de la combobox quand on l'utilise, comme pour tout les autre control

ou bien

Code : Tout sélectionner

Opt("GUIOnEventMode", 1)
$combobox = GUICtrlCreateCombo("item1", 10, 10)
GUICtrlSetOnEvent($combobox, "fonction")
 
Signez ici
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Combobox détection du changement (onchange)

#4

Message par orax »

http://msdn.microsoft.com/en-us/library ... S.85).aspx
► Afficher le textepour voir une solution alternative
Image
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
lord1366
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 28 mai 2008 18:15
Status : Hors ligne

Re: [..] Combobox détection du changement (onchange)

#5

Message par lord1366 »

Bonjour,

Merci pour votre aide, erreur de ma part, vous avez raison.

Code : Tout sélectionner


Erreur : 

$ComboBoxType = GUICtrlCreateCombo("", 260, 10,75)

[color=#BF0000]$ChoixType[/color] = GUICtrlSetData($ComboBoxType, "Distant|Local","Distant")
GUICtrlSetOnEvent([color=#BF0000]$ChoixType[/color], "ChangeType")


Solution

[color=#00FF00]$ComboBoxType[/color] = GUICtrlCreateCombo("", 260, 10,75)

$GUICtrlSetData($ComboBoxType, "Distant|Local","Distant")
GUICtrlSetOnEvent([color=#00FF00]$ComboBoxType[/color], "ChangeType")

 
Répondre