stopsoftwarepatents.eu petition banner

AutoIt Français

Communauté Francophone AutoIt
* Connexion   * M’enregistrer

Heures au format UTC + 1 heure


Règles du forum

Poster un nouveau sujet Répondre au sujet  [ 5 messages ] 
Auteur Message
Hors ligne
Niveau 4
Niveau 4
Inscription: Mer 30 Sep 2009 11:50
Messages: 68

Dernier message
Sujet du message: [R] Demande information sur _GUICtrlComboBox_AutoComplete
MessagePosté: 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.

 Profil  
 
AutoIt Français
Hors ligne
Site Admin
Site Admin
Avatar de l’utilisateur
Inscription: Ven 20 Juil 2007 20:00
Messages: 5598
Age: 43

Localisation: Bordeaux
Sujet du message: Re: [..] Demande information sur _GUICtrlComboBox_AutoComplete
MessagePosté: 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.
Code
    _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
    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 ... :roll:
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 :
Spoiler pour :
Code
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GUIComboBox.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>

Global $hCombo

; Create GUI
GUICreate("ComboBox Auto Complete", 400, 296)
$hCombo = GUICtrlCreateCombo("", 2, 2, 396, 296)
GUISetState()

; Add files
_GUICtrlComboBox_BeginUpdate($hCombo)
_GUICtrlComboBox_AddDir($hCombo, @WindowsDir & "\*.exe")
_GUICtrlComboBox_EndUpdate($hCombo)

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()

Func _Edit_Changed()
    _GUICtrlComboBox_AutoComplete($hCombo)
EndFunc   ;==>_Edit_Changed

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



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 ...

Salutations.
Thierry

 Profil  
 
AutoIt Français
Hors ligne
Niveau 4
Niveau 4
Inscription: Mer 30 Sep 2009 11:50
Messages: 68
Sujet du message: Re: [..] Demande information sur _GUICtrlComboBox_AutoComplete
MessagePosté: Jeu 29 Juil 2010 11:47 

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 ?

 Profil  
 
AutoIt Français
Hors ligne
Site Admin
Site Admin
Avatar de l’utilisateur
Inscription: Ven 20 Juil 2007 20:00
Messages: 5598
Age: 43

Localisation: Bordeaux
Sujet du message: Re: [..] Demande information sur _GUICtrlComboBox_AutoComplete
MessagePosté: Jeu 29 Juil 2010 20:30 

Faites une boucle de lecture de votre fichier texte ligne par ligne et utiliser (pour chacune d'entre elle) la fonction _GUICtrlComboBox_AddString().



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 ...

Salutations.
Thierry

 Profil  
 
AutoIt Français
Hors ligne
Niveau 4
Niveau 4
Inscription: Mer 30 Sep 2009 11:50
Messages: 68

Haut
Sujet du message: Re: [..] Demande information sur _GUICtrlComboBox_AutoComplete
MessagePosté: Ven 30 Juil 2010 11:11 

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

 Profil  
 
Afficher les messages postés depuis:  Trier par  

Poster un nouveau sujet Répondre au sujet  [ 5 messages ] 

Heures au format UTC + 1 heure


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

Rechercher:
Aller à:  
cron

AutoIt Français
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group, Sniper_Blue phpBB-3.0 Style © 2007 Sniper_E
Traduction par: phpBB-fr.com