Keypress Nivel Superior


Ir a la página 1, 2  Siguiente

Objetivo: 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.


PUBLIC SUB TabStrip1_KeyPress()

IF TabStrip1.Index = 0 THEN
IF key.Code = key.F7 THEN
....

ELSE
IF key.Code = key.F8 THEN
....

ELSE
IF key.Code = key.F5 THEN
.....
ENDIF
ENDIF
ENDIF
ENDIF

END


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.

Perfil MP  
Objetivo: 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.


Keypress.tar
Descripción:  
Descargar
Nombre del archivo: Keypress.tar
Tamaño: 20 KB
Descargado: 61 veces
Keypress.tar
Descripción:  
Descargar
Nombre del archivo: Keypress.tar
Tamaño: 20 KB
Descargado: 61 veces
Keypress.tar
Descripción:  
Descargar
Nombre del archivo: Keypress.tar
Tamaño: 20 KB
Descargado: 61 veces

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: Re: Keypress Nivel Superior
shordi escribió: [Ver mensaje]
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

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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:

PUBLIC SUB TextBox1_KeyPress()

SELECT CASE Key.Code
CASE Key.Left
Button3.X -= 1
CASE Key.Right
Button3.X += 1
END SELECT

END


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
Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: Re: Keypress Nivel Superior
aristicol escribió: [Ver mensaje]
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

Perfil MP  
Objetivo: Re: Keypress Nivel Superior
aristicol escribió: [Ver mensaje]
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

Perfil MP  
Objetivo: Re: Keypress Nivel Superior
aristicol escribió: [Ver mensaje]
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.


PUBLIC SUB TabStrip1_KeyPress()

IF TabStrip1.Index = 0 THEN
IF key.Code = key.F7 THEN
....

ELSE
IF key.Code = key.F8 THEN
....

ELSE
IF key.Code = key.F5 THEN
.....
ENDIF
ENDIF
ENDIF
ENDIF

END


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 :/

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1148s (PHP: -27% SQL: 127%)
Consultas SQL: 26 - Debug off - GZIP Activado