Page 1 sur 1

[R] Touche "ENTER" dans une combobox

Posté : mar. 08 sept. 2015 15:38
par tekserver
Bonjour le Forum,

J'utilise dans mon script la fonction _GUICtrlComboBox_AutoComplete, qui fonctionne plutôt bien d'ailleurs, cependant j'aimerais arriver à pouvoir récupérer la valeur qui se trouve dans la combobox en faisant "ENTER" durant un $CBN_EDITCHANGE
► Afficher le texte
Dans l'exemple d'autoit, lorsque je saisie les lettres wr (write.exe) comment faire pour récupérer la valeur/text en faisant "ENTER". J'aimerais que cette possibilité soit accessible uniquement quand $CBN_EDITCHANGE est "activé".

Est-ce faisable ? Si oui, pouvez vous m'aider ?

En vous remerciant,
Cordialement.

Re: [..] Touche "ENTER" dans une combobox

Posté : mer. 09 sept. 2015 10:55
par TT22
Est-ce que ce code te convient ?
► Afficher le texte
J'ai mis les modifications en rouge.

Je me suis largement inspiré de ce sujet.

Re: [..] Touche "ENTER" dans une combobox

Posté : mer. 09 sept. 2015 18:51
par jguinch
GUISetAccelerators + un contrôle de type Dummy devrait aussi faire l'affaire.

Re: [..] Touche "ENTER" dans une combobox

Posté : jeu. 10 sept. 2015 06:35
par tekserver
Bonsoir le forum, TT22, jguinch
TT22 a écrit :Est-ce que ce code te convient ?
C'est parfait, merci beaucoup TT22, je vais pouvoir l'adapter à mon script. Encore merci :)
jguinch a écrit :GUISetAccelerators + un contrôle de type Dummy devrait aussi faire l'affaire.
Je ne connais pas du tout, mais par curiosité je vais regarder cela.

EDIT: genre un truc comme ca ??-> https://www.autoitscript.com/forum/topi ... nt=1239513

Merci à vous deux pour vos réponses.

Cordialement

Re: [R] Touche "ENTER" dans une combobox

Posté : dim. 13 sept. 2015 18:32
par tekserver
Salut TT22,

Bon après avoir adapté ton bout code dans mon script , je laisse tomber cette option car ce dernier "désactive" la touche "Enter" dans les autres partie du script. En effet même dans une msgbox, par exemple, je n'ai pu la possibilité de faire "enter" pour fermer la msgbox. Ne trouvant pas de solution je préfère laisser tombé. ++

Re: [R] Touche "ENTER" dans une combobox

Posté : lun. 14 sept. 2015 08:04
par overflow
tekserver a écrit :Salut TT22,

Bon après avoir adapté ton bout code dans mon script , je laisse tomber cette option car ce dernier "désactive" la touche "Enter" dans les autres partie du script. En effet même dans une msgbox, par exemple, je n'ai pu la possibilité de faire "enter" pour fermer la msgbox. Ne trouvant pas de solution je préfère laisser tombé. ++

desactive le hotkey pendant ta msgbox

Code : Tout sélectionner



Func handleEnter()
    HotKeySet("{ENTER}")
    ; Check if the window is active
    If WinGetState($gui) = 15 Then

        ; Check if control is active
        If ControlGetFocus($gui) = "Edit1" Then

            Local $tImputTx = GUICtrlRead($g_idCombo);
            MsgBox(0,0,$tImputTx)

        EndIf

    EndIf
HotKeySet("{ENTER}", "handleEnter")
EndFunc  ;==>handleEnter

 

Re: [R] Touche "ENTER" dans une combobox

Posté : lun. 14 sept. 2015 19:16
par tekserver
Bonsoir overflow, le forum

Merci beaucoup pour cette ruse, vraiment c'est top :)

Je n'arrive pas à trouver à quoi correspond le "15" dans :

Code : Tout sélectionner

WinGetState($gui) = 15 Then
Dans la doc de Autoit on trouve uniquement:

$WIN_STATE_EXISTS (1) = Window exists
$WIN_STATE_VISIBLE (2) = Window is visible
$WIN_STATE_ENABLED (4) = Window is enabled
$WIN_STATE_ACTIVE (8) = Window is active
$WIN_STATE_MINIMIZED (16) = Window is minimized
$WIN_STATE_MAXIMIZED (32) = Window is maximized

Si une personne pouvait m'expliquer, svp.

Cordialement.

Re: [R] Touche "ENTER" dans une combobox

Posté : lun. 14 sept. 2015 22:45
par jchd
1 + 2 + 4 + 8 = 15

Re: [R] Touche "ENTER" dans une combobox

Posté : mar. 15 sept. 2015 00:10
par tekserver
Bonsoir Jchd,

Merci de ta réponse.

Cordialement.

Re: [R] Touche "ENTER" dans une combobox

Posté : mar. 15 sept. 2015 01:20
par jchd
Désolé de l'aspect cryptique de ma réponse mais j'étais un peu pressé par de menues occupations. Ce que ça signifie est qu'il faut que les conditions correspondant à 1 et 2 et 4 et 8 soient satisfaites à la fois.