[R] Demande information sur _GUICtrlComboBox_AutoComplete

Aide et conseils concernant AutoIt et ses outils.
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] Demande information sur _GUICtrlComboBox_AutoComplete

#1

Message par lerin57 »

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.
Modifié en dernier par lerin57 le ven. 30 juil. 2010 12:36, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Demande information sur _GUICtrlComboBox_AutoComplete

#2

Message par Tlem »

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.

Code : Tout sélectionner

    _GUICtrlComboBox_BeginUpdate($hCombo)
    _GUICtrlComboBox_AddDir($hCombo, @WindowsDir & "\*.exe")
    _GUICtrlComboBox_EndUpdate($hCombo)
Cette partie, charge dans le ComboBox la liste des fichiers exécutables du dossier Windows.

Code : Tout sélectionner

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
Ajoute 'une entrée' vers une fonction (WM_COMMAND) par rapport aux événements de la fenêtre.

Code : Tout sélectionner

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
La boucle d'attente ... :roll:

Code : Tout sélectionner

Func _Edit_Changed()
L'appel à la complétion.

Code : Tout sélectionner

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 :
► 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: [..] Demande information sur _GUICtrlComboBox_AutoComplete

#3

Message par lerin57 »

He bé ...

Je vais paraitre pour un gros faignant, mais il ne nous ont pas vraiment simplifié la tache sur ce coup là.

Je vais reprendre l'etude de l'exemple simplifié que vous m'avez envoyé.

Une dernière question cependant :

la fonction _GUICtrlComboBox_AddDir permet d'ajouter une liste de dossiers.

pour ajouter une liste de type texte, j'ai utilisé la commande _GUICtrlComboBox_AddString(),

mais le résultat n'est pas terrible.

à savoir qu'une liste contenue dans un fichier texte affichera ses éléments sur une seule ligne, et pas les uns sous les autres.

Est ce normal ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Demande information sur _GUICtrlComboBox_AutoComplete

#4

Message par Tlem »

Faites une boucle de lecture de votre fichier texte ligne par ligne et utiliser (pour chacune d'entre elle) la fonction _GUICtrlComboBox_AddString().
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: [..] Demande information sur _GUICtrlComboBox_AutoComplete

#5

Message par lerin57 »

Très bien.

je vais y aller à taton et me commenter le code sur les zones importante.

merci encore une fois de votre aide.

je apsse le sujet en résolu
Répondre