Reacción formulario al pulsar Enter

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

Reacción formulario al pulsar Enter

Mensaje por chechu »

Buenas!! :smt003

El código que adjunto, es un formulario que tiene un input y un botón.

#include <GuiConstantsEx.au3>

GUICreate("GUI input", 200, 200)
$input = GUICtrlCreateInput("", 20, 50, 160)
$Boton = GUICtrlCreateButton("Seguir", 50, 140, 100)
GUISetState(@SW_SHOW)

$msg = 0
While $msg <> $GUI_EVENT_CLOSE
$msg = GUIGetMsg()
Select
Case $msg = $Boton
ExitLoop
EndSelect
WEnd

MsgBox(4096, "Información del input", GUICtrlRead($input))

Con el botón "Seguir" cerramos el formulario y muestra el valor $input.
Lo que quiero es que además de con el botón "Seguir" haga lo mismo al pulsar Enter.

Es decir, que al teclear un valor en el input y pulsar Enter, se comporte igual que si pulsáramos el botón "seguir".

No sé si me explico..

:smt005
Muchas Gracias!! :smt002
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Reacción formulario al pulsar Enter

Mensaje por Ximorro »

Una manera es hacer el botón el control por defecto en el formulario, para ello después de crearlo con GUICtrlCreateButton pon esta línea:
GUICtrlSetState(-1, $GUI_DEFBUTTON)

Una sugerencia, puedes incluir la comprobación de $GUI_EVENT_CLOSE dentro del mismo Select donde miras el botón. O bien, ya que sólo miras el botón dentro del Select puedes cambiarlo por un IF y simplificas código.
Es mejor la primera opción, así si creas más controles (o quieres mirar otros eventos de sistema como @SW_MINIMIZE) sólo tienes que añadir más casos Case.

En este tutorial se crea un GUI que maneja un esquema similar, hago un bucle "infinito" y miro todos los eventos dentro del Select (en realidad uso un Switch, creo que para esto es más compacto). Puede que sea cuestión de gustos pero creo que es mejor tratar todos los eventos de manera homogénea, en vez de unos en el While y otros en el Select.
http://www.emesn.com/autoitforum/viewto ... f=2&t=2246

Saludos
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

Re: Reacción formulario al pulsar Enter

Mensaje por chechu »

Gracias Ximorro!!

Estoy aprendiendo Koda y todavía me pierdo en lo básico.

Respecto a lo que comentas, efectivamente es mejor solución. De hecho creo que es así como viene en los examples de funcion.

Gracias por pasarme el link, lo voy a mirar detalladamente.

Un saludo! :smt023
Responder