Page 1 sur 1

ComboBoxGadget

Publié : lun. 12/mai/2025 19:59
par Nialab
Bonjour,
Je n'arrive pas à récupérer la valeur ou l'index d'une donnée dans un ComboBoxGaget lorsque je sélectionne à la souris une ligne de la liste du combo

ComboBoxGadget( #Combo1, 100, 100, 150, 50)
AddGadgetItem( #Combo1, -1,"DATA1" )
AddGadgetItem( #Combo1, -1,"DATA2" )
AddGadgetItem( #Combo1, -1,"DATA3" )
;Selection à la souris, DATAx apparait bien dans la fenêtre du combo mais
Selec = GetGadgetState(#Combo1)
data$ = GetGadgetText(#Combo1)

Selec reste à -1 et data$ à ""

Merci pour votre aide.

Re: ComboBoxGadget

Publié : lun. 12/mai/2025 20:38
par Marc56
Nialab a écrit : lun. 12/mai/2025 19:59 Bonjour,
Je n'arrive pas à récupérer la valeur ou l'index d'une donnée dans un ComboBoxGaget lorsque je sélectionne à la souris une ligne de la liste du combo

ComboBoxGadget( #Combo1, 100, 100, 150, 50)
AddGadgetItem( #Combo1, -1,"DATA1" )
AddGadgetItem( #Combo1, -1,"DATA2" )
AddGadgetItem( #Combo1, -1,"DATA3" )
;Selection à la souris, DATAx apparait bien dans la fenêtre du combo mais
Selec = GetGadgetState(#Combo1)
data$ = GetGadgetText(#Combo1)

Selec reste à -1 et data$ à ""

Merci pour votre aide.
Bonsoir,

GetGadgetText retourne le texte des gadgets n'ayant qu'un seul texte.
GetGadgetItemText() Retourne le texte des gadgets ayant plusieurs éléments.
GetGadgetState() Retourne le numéro d'index (premier = zéro)
Il faut les deux (...Item... + ...State...) pour sélectionner un élément.

GetGadgetState() retourne différentes informations selon le gadget (voir l'aide)

Code : Tout sélectionner

EnableExplicit

Enumeration 
    #Win
    #Combo
EndEnumeration

OpenWindow(#Win, 0, 0, 270, 180, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

ComboBoxGadget(#Combo, 10, 70, 250, 21)


AddGadgetItem(#Combo, -1, "Data1")
AddGadgetItem(#Combo, -1, "Data2")
AddGadgetItem(#Combo, -1, "Data3")

Repeat
    Select WaitWindowEvent()
        Case #PB_Event_CloseWindow 
            End
            
        Case #PB_Event_Gadget
            If EventGadget() = #Combo
                SetWindowTitle(#Win,
                               "N° " + GetGadgetState(#Combo) + 
                               " : " + GetGadgetItemText(#Combo, GetGadgetState(#Combo) ) )
            EndIf
    EndSelect
ForEver

End

Re: ComboBoxGadget

Publié : lun. 12/mai/2025 21:03
par Nialab
Un grand merci, je découvre PB depuis peu et je le trouve vraiment extra, ça me rajeunit de quelques décennies et j'en ai marre des do try catch de Swift et des Objets :? à n'en plus finir et en plus s' il y a un forum d'aide avec une telle réactivité !!! Bravo et merciiiiiii
Bonne soirée