[R] Actualisation de ComboBox

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
jpascal
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 16 oct. 2008 15:21
Status : Hors ligne

[R] Actualisation de ComboBox

#1

Message par jpascal » mar. 29 août 2017 15:50

Bonjour,

J'utilise ce code pour auto compléter mes ComboBox.

Si je choisis la valeur dans la liste en cliquant avec la souris, l'index est bien retourné lorsque je clique sur le bouton +.
Si j'utilise l'auto completion, la valeur de l'index retournée est -1.

Comment faire en sorte d'actualiser la sélection de la ComboBox ?

Code : Tout sélectionner

#include <GuiComboBox.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

$hGUI = GUICreate("", 220, 80)
GUICtrlCreateLabel("User", 20, 20)
Global $g_idCombo_User = GUICtrlCreateCombo("", 20, 20, 150, 20)
GUICtrlSetData(-1, "Jean|Marius|Marina|Marie")
Local $idButton_AddUser = GUICtrlCreateButton("+", 175, 19, 23, 23)
GUISetState(@SW_SHOW)


While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			ExitLoop
		Case $idButton_AddUser
			MsgBox(0, "", _GUICtrlComboBox_GetCurSel($g_idCombo_User))
	EndSwitch
WEnd


Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
	#forceref $hWnd, $iMsg
	Local $hWndFrom, $iIDFrom, $iCode, $hWndCombo_User
	If Not IsHWnd($g_idCombo_User) Then $hWndCombo_User = GUICtrlGetHandle($g_idCombo_User)
	$hWndFrom = $lParam
	$iIDFrom = BitAND($wParam, 0xFFFF) ; Low Word
	$iCode = BitShift($wParam, 16) ; Hi Word
	Switch $hWndFrom
		Case $g_idCombo_User, $hWndCombo_User
			Switch $iCode
				Case $CBN_EDITCHANGE ; Sent after the user has taken an action that may have altered the text in the edit control portion of a combo box
					_GUICtrlComboBox_AutoComplete($g_idCombo_User)
					; no return value
			EndSwitch
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
Modifié en dernier par jpascal le lun. 11 sept. 2017 13:19, modifié 1 fois.
AutoIt 3.3.15.1 / SciTE 4.1.0 / Windows 7 & 10 x64

Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Contact :
Status : Hors ligne

Re: Actualisation de ComboBox

#2

Message par orax » mar. 29 août 2017 16:43

Si le contenu est récupéré, au lieu de l'index, est-ce que ça irait ?

Code : Tout sélectionner

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			ExitLoop
		Case $idButton_AddUser
;~ 			MsgBox(0, "", _GUICtrlComboBox_GetCurSel($g_idCombo_User))
			MsgBox(0, "", GUICtrlRead($g_idCombo_User))
	EndSwitch
WEnd
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)

Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 106
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: Actualisation de ComboBox

#3

Message par Numeric » mer. 30 août 2017 03:02

Ou si c'est l'index que tu veux aussi...
While 1
        Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                        ExitLoop
                Case $idButton_AddUser

                        MsgBox(0, "",_GUICtrlComboBox_FindString($g_idCombo_User,GUICtrlRead($g_idCombo_User)))
        EndSwitch
WEnd
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric

jpascal
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 16 oct. 2008 15:21
Status : Hors ligne

Re: Actualisation de ComboBox

#4

Message par jpascal » ven. 01 sept. 2017 08:20

Bonjour,

Merci pour vos réponses.

Si je veux être tatillon, je peux dire que la solution de Numeric n'est pas fonctionnelle à 100 %.
Exemple avec ce code : GUICtrlSetData(-1, "Marielle|Jean|Marie")

Je reste étonné qu'il n'y ait pas de méthode d'actualisation de la sélection de la ComboBox et que l'on soit obligé de "bidouiller" pour obtenir le résultat escompté.

Néanmoins je vais utiliser _GUICtrlComboBox_FindString qui répond à mon besoin.

Encore merci à vous deux.
AutoIt 3.3.15.1 / SciTE 4.1.0 / Windows 7 & 10 x64

Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Contact :
Status : Hors ligne

Re: Actualisation de ComboBox  

#5

Message par orax » ven. 01 sept. 2017 10:54

_GUICtrlComboBox_FindStringExact

Code : Tout sélectionner

MsgBox(0, "", _GUICtrlComboBox_FindStringExact($g_idCombo_User, GUICtrlRead($g_idCombo_User)))
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)

jpascal
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 16 oct. 2008 15:21
Status : Hors ligne

Re: Actualisation de ComboBox

#6

Message par jpascal » lun. 11 sept. 2017 13:19

C'est parfait. :-)

Merci et bonne journée.
AutoIt 3.3.15.1 / SciTE 4.1.0 / Windows 7 & 10 x64

Répondre