Sujet du message: [R] Demande information sur _GUICtrlComboBox_AutoComplete
Posté: Mer 28 Juil 2010 20:46
Bonjour, à tous
L'aide d'autoit fournit une explication "relativement" brève sur l'utilisation de la fonction _GUICtrlComboBox_AutoComplete(), avec en revanche, un exemple plutot complexe.
J'ai effectué des recherche sur google, sur le site http://www.autoitscript.com, et sur ce forum (en utilisant les terme auto completion, ou le nom de la fonction elle même), mais je n'ai pas trouvé d'explication à ma portée.
Concretement, dans un controle de type combobox, je désire completer automatiquement un mot à partir d'une liste, d'un tableau (array) ou d'un fichier texte.
j'ai essayé d'adapter l'exemple dans l'aide, mais je ne doit pas etre suffisament doué.
Si quelqu'un peut m'aider, je l'en remercie par avance.
Dernière édition par lerin57 le Ven 30 Juil 2010 11:36, édité 1 fois.
AutoIt Français
Tlem
Site Admin
Inscription: Ven 20 Juil 2007 20:00 Messages: 5598 Age: 43
Localisation: Bordeaux
Sujet du message: Re: [..] Demande information sur _GUICtrlComboBox_AutoComplete
Posté: Mer 28 Juil 2010 21:15
L’auto-complétion dans le cas présent, ne se fait que par rapport aux noms qui ce trouvent dans la liste du ComboBox.
C'est à dire que le début du script d'exemple charge dans le ComboBox la liste des noms à afficher et la fonction _GUICtrlComboBox_AutoComplete se charge de choisir dans la liste le mot le plus approchant de ce que vous tapez dans la zone de saisie du ComboBox.
Edit : Voici quelques explications sur le code d'exemple.
Cette partie, charge dans le ComboBox la liste des fichiers exécutables du dossier Windows.
Code
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
Ajoute 'une entrée' vers une fonction (WM_COMMAND) par rapport aux événements de la fenêtre.
Code
Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete()
La boucle d'attente ...
Code
Func _Edit_Changed()
L'appel à la complétion.
Code
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
La fonction qui surveille le champ de saisie du ComboBox. Dans cette fonction, il y à beaucoup de chose qui ne vous serviront pas. Entre autre la plupart des Case ne sont là que pour vous montrer ce qu'il est possible d'intercepter sur votre champ de saisie. En réalité, seul le Case $CBN_EDITCHANGE vous est utile. En ce qui concerne la fonction _DebugPrint, elle n'est là que pour afficher dans la console de Scite les renseignements sur l'action effectuée.
Voici le code de l'exemple, épuré de ce qui n'est pas utile :
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg Local $hWndFrom, $iIDFrom, $iCode, $hWndCombo If Not IsHWnd($hCombo) Then $hWndCombo = GUICtrlGetHandle($hCombo) $hWndFrom = $ilParam $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word $iCode = BitShift($iwParam, 16) ; Hi Word Switch $hWndFrom Case $hCombo, $hWndCombo 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 _Edit_Changed() EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités
Vous ne pouvez pas poster de nouveaux sujets Vous ne pouvez pas répondre aux sujets Vous ne pouvez pas éditer vos messages Vous ne pouvez pas supprimer vos messages Vous ne pouvez pas joindre des fichiers