Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Keypress Nivel Superior
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
aristicol - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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: 60 veces
Keypress.tar
Descripción:  
Descargar
Nombre del archivo: Keypress.tar
Tamaño: 20 KB
Descargado: 60 veces
Keypress.tar
Descripción:  
Descargar
Nombre del archivo: Keypress.tar
Tamaño: 20 KB
Descargado: 60 veces

 



 
aristicol - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
aristicol - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
aristicol - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
AnSnarkista - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
aristicol - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
Beycker - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 :/
 



 
Beycker - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Teclas Especiales En Keypress (SOLUCIONADO) ahtonio General 2 Martes, 21 Diciembre 2010, 18:48 Ver último mensaje
ahtonio
No hay nuevos mensajes Sobre Seguridad En Gambas Con Mysql A Nive... shordi General 2 Martes, 01 Octobre 2013, 18:53 Ver último mensaje
shordi
No hay nuevos mensajes Obtener Como String Desde Una Operación U... vuott Aplicaciones/Fragmentos de Código 0 Domingo, 19 Julio 2015, 00:31 Ver último mensaje
vuott
No hay nuevos mensajes Operaciones A Nivel De Bits Shell General 1 Miercoles, 18 May 2016, 19:45 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron