Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Observador De Objetos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Observador De Objetos 
 
hola compañeros.

El compañero Jsbsan en un manual de creación de componentes para gambas que por cierto le quedo muy bien y aprovecho para felicitarlo, comenta:


"2.3.Los observadores

Los observadores son objetos que le permiten interceptar los
eventos provocados por otros objetos. Que "observar" ellos.
Puede interceptar eventos justo antes de que se han planteado, o
justo después.

Para cada evento interceptado, el observador levantará un evento
con el mismo nombre y los mismos argumentos.

Mediante el uso de STOP EVENT dentro de un controlador de eventos
de observador, se cancela el evento original.

Ejemplo:

PRIVATE $hButton as Button
PRIVATE $hObserver AS Observer
PUBLIC SUB Form_Load()
$hButton = NEW Button(ME) AS "Button"
$hObserver = NEW Observer(hButton) AS "Observer"
END
PUBLIC SUB Observer_Click()
DEBUG "El botón ha echo click. ¡Puedo cancelar el evento!"
STOP EVENT
END
PUBLIC SUB Button_Click()
DEBUG “ud no debe verme"
END

"

Bueno el tema me resulta interesante para ver "teniendo en cuenta una sugerencia que me dio un usuario del foro, pero sin ejemplo concreto, a quien también le agradezco" mi gran necesidad es que las teclas de funciones no son captadas su pulsación desde los eventos de formulario o contenedores, sólo son detectada su pulsación en los objetos como textbox listas etc, cosa que no sucedía antes con gambas16 para abajo pero, la librería que solía usar para compilar esta obsoleta para ubuntu 10.10 y sin ella aunque logre instalar gambas 16 en Ubuntu 10.10 sigue con ese comportamiento de no captación de la pulsación de teclas de función en contenedores, es importante para mi aplicación el uso de las mismas, pues me quedaría engorroso repetir la rutina keypress para cada control que pueda quedar con el enfoque mas aun, cuando antes sólo me bastaba tenerla en un solo evento en mi caso un TabStrip, hoy ha quedado muerto no reacciona.


¿Sera que creando un objeto observador puede captar la pulsación de dichas teclas?  
si es así como se hace porque con el ejemplo anterior creen un formulario pegue el código en el pero no veo que sucede nada.


aquí dejo el hilo donde expongo la situación con un ejemplo.

http://foro.gambas-es.org/viewtopic.php?f=1&t=961


Gracias por la ayuda que me puedan prestar.
 



 
última edición por aristicol el Sabado, 20 Noviembre 2010, 02:02; editado 1 vez 
aristicol - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Observador De Objetos 
 
Lo he intentado... pero no lo he consigo..     (yo tengo la version de gambas2.21)
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Observador De Objetos 
 
Citar:
¿Sera que creando un objeto observador puede captar la pulsación de dichas teclas?
si es así como se hace porque con el ejemplo anterior creen un formulario pegue el código en el pero no veo que sucede nada.

Es un tema interesante que tengo que probar. No puedo pronunciarme ahora mismo sobre ello. Yo creo que creando una clase que herede del container y a la que se le añade su propio observador de eventos y el evento controlar_pulsacion sería posible controlar el teclado, pero hay que probar.

De todas formas se me ocurre otra solución. Pones a todos esos controles en el mismo grupo (pongamos GRU) y luego codificas el evento GRU_keypress. Eso haría que ese keypress gestionara todos los controles.

Probaré esta tarde que ahora voy a salir.

Un saludo
 



 
última edición por soplo el Sabado, 20 Noviembre 2010, 16:03; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Observador De Objetos 
 
Pues he probado y no consigo reproducir el error que te da. A mi si me funciona bien.

Yo pongo en un form algo como esto:
private sub form_keypress()
if key.code=key["F2"] then
   message.info("se ha pulsado la tecla F2")
endif
end
 

Luego hago un container cualquiera. Por ejemplo un frame y dentro meto un textbox.

Cuando ejecuto el textbox coge el foco y si pulso F2 efectivamente no funciona pero es natural porque estamos en el evento keypress del textbox. En cuanto he puesto código al keypress del textbox ha funcionado
private sub textbox1_keypress()
form_keypress()
end


Así que si tienes varios controles en un tabstrip la solución es poner todos los congroles en el mismo grupo al que yo llamo GRU por ejemplo y hacerle un evento keypress
private sub GRU_keypress()
form_keypress()
end

Y ya ocurre que pulses F2 donde lo pulses funcionará.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Observador De Objetos 
 
[quote user="soplo" post="6334"]Pues he probado y no consigo reproducir el error que te da. A mi si me funciona bien.

Yo pongo en un form algo como esto:
private sub form_keypress()
if key.code=key["F2"] then
   message.info("se ha pulsado la tecla F2")
endif
end
 



No sabría decirte, yo uso ubuntu 10.10 "Gnome" gambas 2.21 y no me reacciona el evento keypress del from o de cualquier contenedor como lo he explicado la instalación usada de gambas es desde los repositorios, igual no respondía en ubuntu 10.04 con versión de gambas superior a 2.16, si reacciona el keypress de los text y demás objetos.

Ahora faltaría saber a cuantos les sucede lo mismo que ami y que disto con Gnome-KDE tiene y versión de gambas.

Gracias.
 



 
última edición por aristicol el Domingo, 21 Noviembre 2010, 03:26; editado 1 vez 
aristicol - 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 Objetos Animados En Gambas h4k Aplicaciones/Fragmentos de Código 3 Domingo, 25 Abril 2010, 22:35 Ver último mensaje
spheris
No hay nuevos mensajes Consulta Acerca De Una Matriz De Objetos: ... santijav General 6 Jueves, 21 Abril 2011, 05:14 Ver último mensaje
soplo
No hay nuevos mensajes Objetos Drawningarea agrgal Controles/Librerías/Componentes 5 Jueves, 27 Octobre 2011, 20:51 Ver último mensaje
jguardon
No hay nuevos mensajes ¿Que Código Pongo Para Usar El Observado... gambafeliz General 4 Martes, 27 Agosto 2019, 13:15 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

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