[..] Combobox commencer à taper au clavier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

[..] Combobox commencer à taper au clavier

#1

Message par Bayo »

Bonjour,

Le sujet à peut-être était traiter mais je sais pas quoi taper pour la recherche.

J'ai une combobox avec une liste d'adhérent et j'aimerai que lorsqu'on commence à taper le nom de l'adhérent que ça le tape entierement quand on appuie sur Tab par exemple.

J'essaye avec les différents styles disponibles mais comment mettre un style sans renseigner la hauteur
GUICtrlCreateCombo("", 230, 200, 150,hauteur,style)
si je met rien pour la hauteur, ça met une erreur
si je met des "" ou une valeur je n'ai plus la flêche pour afficher la combobox.
et je ne sais pas si il y a un style pour faire ce que je veux.

Merci
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..]Combobox commencer à taper au clavier

#2

Message par jguinch »

Il faut que tu recherches avec les termes autocomplétion ou autocomplete.
Pour la hauteur, tu peux mettre -1
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..]Combobox commencer à taper au clavier

#3

Message par Bayo »

Merci pour la réponse, j'ai trouvé la fonction _GUICtrlComboBox_AutoComplete() mais l'exmple est très compliqué et encore plus pour mon script

en faite je créer un nombre de combobox prédéfini comme ceci :

► Afficher le texte
Je ne vois pas comment intégrer tout l'exemple pour chaque combobox j'ai essayer de faire ça
► Afficher le texte
Je n'ai pas d'erreur mais ça ne marche pas, est-ce que je suis bien parti?

Merci
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..]Combobox commencer à taper au clavier

#4

Message par jguinch »

Voilà un petit exemple :
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#5

Message par Bayo »

Ok merci j'essaye ça, je comprend mon erreur. Au lieu de récupérer l'Handle des combos, j'utilisais leur variable $idcombo1 dans ton exemple. je vais essayer de l'adapter à mes comboboxs dynamiques.
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#6

Message par Bayo »

Bon ben je n'y arrive pas, je ne comprend pas comment l'adapter avec mes combo dynamique

j'en suis là avec ton exemple mais ça ne marche pas
► Afficher le texte
Eval("hclassement"&$i) fonctionne bien dans la boucle For mais arriver dans la fonction il sont vide mais je ne comprend pas comment mettre le Case avec tout les Handle dynamiquement.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#7

Message par mikell »

Tu tiens absolument aux combos ? sinon ça c'est pas mal
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#8

Message par Bayo »

Merci.
En effet c'est pas mal aussi, je vais le montrer à ceux de mon club pour voir ce qu'ils préfèrent. et s'ils accrochent sur ça j'essayerai de le faire.
Sinon tu n'a pas de solution pour mes combo dynamique avec autocomplete?
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#9

Message par orax »

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") n'a pas besoin d'être dans la boucle For/Next. Il faut mettre ça avant, une fois c'est tout.

Code : Tout sélectionner

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom = $lParam
    Local $iCode = BitShift($wParam, 16)
    Switch $hWndFrom
        Case Eval("hclassement" &$i) ; <=== ne peut marcher puisque $i aura toujours la même valeur
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#10

Message par mikell »

Personnellement je suis pas fan de _GUICtrlComboBox_AutoComplete() , tu tapes une lettre et ça envoie le mot mais si tu as plusieurs mots qui commencent par la même lettre c'est la misère
La logique et la souplesse d'utilisation demanderaient plutôt une solution plus "intelligente"
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#11

Message par Bayo »

Oui mikell, ta solution est intéressante mais je me retrouve avec le même problème. Comment faire pour insérer mes Combos dynamiques ou dans ton script des inputs dynamiques dans la Func WM_COMMAND?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#12

Message par mikell »

Bayo a écrit :Comment faire pour insérer (..) des inputs dynamiques dans la Func WM_COMMAND?
Je comprends pas la question
Dans le code la fonction WM_COMMAND surveille la notification $EN_UPDATE sur les 3 inputs, mais tu peux très bien y rajouter des instructions pour surveiller des évènements sur d'autres controles
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#13

Message par Bayo »

si tu regarde mon code, je génère des combo(ou input) avec des Assign() dans une boucle et je ne vois pas comment après les mettre dynamiquement dans la fonction WM_COMMAND.
Si je pouvais rajouter des paramètres à cette fonction je pourrais indiquer toutes mes boxs mais là je n'y arrive pas.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#14

Message par mikell »

Ah OK
Personnellement je trouve les Assign casse-gueule et je préfère une array
Voilà le même code avec 3 inputs mais ce nombre peut très bien être défini dans le script
Il faut juste dans les Switch utiliser la syntaxe "Case $var_0 to $var_n"
J'ai pas testé mais avec des assign ça devrait être :
Case Eval("hclassement0") to Eval("hclassement" & $n)
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#15

Message par Bayo »

J'ai réussi à adapter ton code au mien, mais j'ai un peu de mal à le suivre. J'ai 1 soucis et un rajout si possible.

Quand je clique sur un nom dans la liste, il ne se met pas dans l'input, la liste reste visible et si je clique sur un autre input et que je tape la même lettre, le nom que j'ai selectionner se met dans cette input. (Exemple : dans le premier input je tape A et je sélectionne Alain, je vais ensuite dans le 2ème Input et je tape A et Alain se met dans cette input)
Je ne vois pas d'où viens l'erreur.

Autre chose: est ce possible de rajouter quand je clique sur les fleche du bas et du haut que je me balade dans la liste et si je fais Entrée ça le met dans l'Input.

Je te met ton code adapter au mien, j'espère que ça va suffire.
► Afficher le texte
Merci.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Combobox commencer à taper au clavier

#16

Message par mikell »

Je ne peux rien te dire sur ton code tout simplement parce qu'il n'est pas complet et que je ne peux donc pas le tester
Tout ce que je peux te proposer c'est le code suivant, qui fonctionne avec un nombre prédéterminé d'inputs (dans une array) et avec les touches haut/bas/enter pour la liste
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre