#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 623, 442, 192, 124)
Global $Input1 = GUICtrlCreateInput("Input1", 84, 108, 205, 21)
Global $Button1 = GUICtrlCreateButton("Button1", 140, 188, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
MsgBox(0,"test via le button",GUICtrlRead($Input1),10)
Case $Input1
MsgBox(0,"test via input",GUICtrlRead($Input1),10)
EndSwitch
WEnd
Voila lors d'une saisie dans un contrôl input, je voudrais déclenché une action seulement lors de l'appui sur la touche enter.
et aucune action si c'est une autre touche comme une tabulation ou lorsque l'on quitte le champ avec la souris ou si l'on quitte la gui.
exactement comme l'action sur le button
Je sais pas si cela est possible
Merci de votre aide
A+ JL56
Modifié en dernier par jl56 le dim. 04 déc. 2011 20:37, modifié 1 fois.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $Form1 = GUICreate("Form1", 623, 442, 192, 124)
Global $Input1 = GUICtrlCreateInput("Input1", 84, 108, 205, 21)
Global $Button1 = GUICtrlCreateButton("Button1", 140, 188, 75, 25)
Global $dummy = GUICtrlCreateDummy()
Dim $AccelKeys[1][2]=[["{ENTER}", $dummy]]
GUISetAccelerators($AccelKeys)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $dummy
$a = GUIGetCursorInfo($Form1)
If $a[4] = $input1 Then MsgBox(0,"test via ENTER","Tu as pressé la touche Enter ! ",10)
Case $Button1
MsgBox(0,"test via le button",GUICtrlRead($Input1),10)
EndSwitch
WEnd
PS merci à Iste qui fighte à mort pour GUISetAccelerators
" L'échec est le fondement de la réussite. " (Lao-Tseu ) " Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Ahbadiane a écrit :Une solution trouvée sur le site anglais ici
Super, GUISetAccelerators avec un dummy... comment n'y ai-je pas pensé ?
Je préfère la vérification du hover plutôt que du focus qui demande qu'on clique sur l'input
Bizarre chez moi ça marche... d'autres testeurs ?
" L'échec est le fondement de la réussite. " (Lao-Tseu ) " Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Merci à vous deux j'ai fait un mixte et ça fonctionne
@mikell votre script ne fonctionne que si la souris est positionnée sur le champ
avec le script trouvé sur le forum anglais par Ahbadiane on test le control actif
jl56 a écrit :.... et aucune action si c'est une autre touche comme une tabulation ou lorsque l'on quitte le champ avec la souris
jl56 a écrit :@mikell votre script ne fonctionne que si la souris est positionnée sur le champ
Ben faut savoir ce que vous voulez... je fais ce qu'on demande moi ^^
Encore une question posée de façon pas assez Claire...
Regardez dans l'aide : on crée un controle bidon (dummy) et avec GUISetAccelerators on lui attribue une hotkey (enter)
En pressant la hotkey on active le dummy et on execute le 'Case $dummy'
" L'échec est le fondement de la réussite. " (Lao-Tseu ) " Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Merci pour ces explications j'avais bien regardé l'aide mais je n'arrivais pas a interpréter en français claire
j'avais notamment bien vue l’accélérateur mais manifestement mon cerveau avais du mal a embrayer.
Pour la souris, je voulais dire lorsque que l'on quitte le champ vers par exemple un autre control (input)
mais comme dans mon exemple il n'y en avait qu'un, je comprend votre confusion. mille excuses