Autor |
Mensaje |
aristicol
Aprendiz
Registrado: Septiembre 2009
Mensajes: 87
Edad: 37 Ubicación:
|
Keypress Nivel Superior
Hola compañeros, resulta que tengo ciertas molestias con gambas desde la versión 2.17 para arriba y es el manejo del evento keypress.
En versiones anteriores a la 2.17 bastaba con validar cualquier pulsación y/o combinación en el evento keypress de un contenedor de nivel superior para que se tuviera en cuenta dichas validaciones cuando el enfoque lo tiene cualquier objeto contenido, quiere decir esto que si el enfoque lo tiene un Textbox y al pulsar cualquier tecla o combinación establecida por ejemplo en el evento Form_keypress() dicha evento se dispara, cosa que no sucede con gambas desde 2.17 para arriba.
Yo tengo un TabStrip con varias pestañas y valido la pulsación de teclas de función cuando se esta dentro de X Pestaña.
El esqueleto de código mostrado funciona perfecto con gambas 2.16.
Alguien tiene una idea porque gambas 2.17 hasta 2.21 ignora el keypress del contenedor y sólo se queda con el Keypress del objeto que tiene el enfocque.
Gracias.
|
#1 Miercoles, 22 Septiembre 2010, 11:57 |
|
|
aristicol
Aprendiz
Registrado: Septiembre 2009
Mensajes: 87
Edad: 37 Ubicación:
|
Re: Keypress Nivel Superior
|
#2 Lunes, 04 Octobre 2010, 04:31 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Keypress Nivel Superior
Pues no sé si es un bug o un comportamiento planificado. El caso es que si quieres solucionarlo agrupa todos los controles (propiedad Group del control) y procesa un evento keypress común para todos ellos.
Suerte
=================== No podemos regresar
|
#3 Lunes, 04 Octobre 2010, 06:40 |
|
|
aristicol
Aprendiz
Registrado: Septiembre 2009
Mensajes: 87
Edad: 37 Ubicación:
|
Re: Keypress Nivel Superior
Pues no sé si es un bug o un comportamiento planificado. El caso es que si quieres solucionarlo agrupa todos los controles (propiedad Group del control) y procesa un evento keypress común para todos ellos.
Suerte
Gracias pero no encontré los resultados como espero funcionaban en gambas 2.16
|
#4 Martes, 05 Octobre 2010, 01:34 |
|
|
aristicol
Aprendiz
Registrado: Septiembre 2009
Mensajes: 87
Edad: 37 Ubicación:
|
Re: Keypress Nivel Superior
Reviviendo este tema.
Compañeros alguna sugerencia en ejemplo que funcione???? necesito que las teclas de funciones me reaccionen cuando las pulso no importando en cual control se encuentra el foco, "ya que el keypress de los contenedores llámese Frame, From ... no reacciona" como lo demuestra el ejemplo colgado.
Gracias
|
#5 Domingo, 24 Octobre 2010, 02:23 |
|
|
AnSnarkista
Programador
Registrado: Junio 2010
Mensajes: 118
Edad: 33
|
Re: Keypress Nivel Superior
Yo me puse el otro dia a probar codigo con KeyPress y es verdad...no coge las teclas...
Lo que probe y las respuestas que me daba el ejemplo era inquietante...aqui dejo el codigo:
En el evento KeyPress del TextBox si que me lo detecta y el Button3 se desplaza, pero si cambio por el evento KeyPress de FMain no...
No se si servira para algo...pero yo lo dejo ahi.
Salud!!
EDITO:
Eran inquietantes porque cuando lo probe el otro dia, no me detectaba las flechas de direccion, se quedaba quieto el Button3, pero si escribia letras o numeros, se movia como si fuera Button3.X -=1, y no hacia el otro lado...
Hoy lo he vuelto a probar, y parece que si que me detecta ambas flechas, izda. y dcha., pero he intentado ponerle las flechas de arriba y abajo, y al darle, el foco se va a otro control, y solo se mueve una vez...
última edición por AnSnarkista el Domingo, 24 Octobre 2010, 13:18; editado 2 veces
|
#6 Domingo, 24 Octobre 2010, 13:14 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Keypress Nivel Superior
Me temo que tendrás que hacer uso de la clase Observer para detectar esos eventos.
http://gambasdoc.org/help/doc/object-model#t11
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#7 Domingo, 24 Octobre 2010, 13:25 |
|
|
aristicol
Aprendiz
Registrado: Septiembre 2009
Mensajes: 87
Edad: 37 Ubicación:
|
Re: Keypress Nivel Superior
Compañeros, alguna solución a lo que les comento, y acá les dejo un ejemplo de lo que sucede con el Keypress de un objeto contenedor que debería reaccionar cuando se esta en cualquier objeto contenido en el mismo.
Comunidad les pido que me ayuden a solventar este problema con un ejemplo vivo, gracias
|
#8 Martes, 09 Noviembre 2010, 19:30 |
|
|
Beycker
Usuario
Registrado: Agosto 2016
Mensajes: 2
Edad: 33
|
Re: Keypress Nivel Superior
Reviviendo este tema.
Compañeros alguna sugerencia en ejemplo que funcione???? necesito que las teclas de funciones me reaccionen cuando las pulso no importando en cual control se encuentra el foco, "ya que el keypress de los contenedores llámese Frame, From ... no reacciona" como lo demuestra el ejemplo colgado.
Gracias
ENCONTRÉ LA SOLUCIÓN es muy sencillo
(Uno coloca el codigo de siempre)
supongamos que estamos en Fmain y queremos pasar al otro formulario
llamado bienvenida
COLOCAMOS LO MISMO
------------------------------------------
Public Sub Form_KeyPress()
bienvenida.ShowModal
End
PERO AQUÍ HAY ALGO MAS
aunque el código esta bueno...
NO SE POR QUE RAZÓN hay que colocar un "button" llámese como se llame
una vez lo hayas colocado
SIN CÓDIGOS NI NADA, SOLO COLOCARLO
mágicamente te va a abrir al otro formulario en este caso bienvenida
|
#9 Martes, 30 Agosto 2016, 02:40 |
|
|
Beycker
Usuario
Registrado: Agosto 2016
Mensajes: 2
Edad: 33
|
Re: Keypress Nivel Superior
Hola compañeros, resulta que tengo ciertas molestias con gambas desde la versión 2.17 para arriba y es el manejo del evento keypress.
En versiones anteriores a la 2.17 bastaba con validar cualquier pulsación y/o combinación en el evento keypress de un contenedor de nivel superior para que se tuviera en cuenta dichas validaciones cuando el enfoque lo tiene cualquier objeto contenido, quiere decir esto que si el enfoque lo tiene un Textbox y al pulsar cualquier tecla o combinación establecida por ejemplo en el evento Form_keypress() dicha evento se dispara, cosa que no sucede con gambas desde 2.17 para arriba.
Yo tengo un TabStrip con varias pestañas y valido la pulsación de teclas de función cuando se esta dentro de X Pestaña.
El esqueleto de código mostrado funciona perfecto con gambas 2.16.
Alguien tiene una idea porque gambas 2.17 hasta 2.21 ignora el keypress del contenedor y sólo se queda con el Keypress del objeto que tiene el enfocque.
Gracias.
ENCONTRÉ LA SOLUCIÓN es muy sencillo
(Uno coloca el codigo de siempre)
supongamos que estamos en Fmain y queremos pasar al otro formulario
llamado bienvenida
COLOCAMOS LO MISMO
------------------------------------------
Public Sub Form_KeyPress()
bienvenida.ShowModal
End
PERO AQUÍ HAY ALGO MAS
aunque el código esta bueno...
NO SE POR QUE RAZÓN hay que colocar un "button" llámese como se llame
una vez lo hayas colocado
SIN CÓDIGOS NI NADA, SOLO COLOCARLO
mágicamente te va a abrir al otro formulario en este caso bienvenida
SUPONGO QUE SERÁ algún tipo de error del programa por que no es lógico :/
|
#10 Martes, 30 Agosto 2016, 02:43 |
|
|
|