Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta observador. Mostrar todas las entradas
Mostrando entradas con la etiqueta observador. Mostrar todas las entradas

viernes, 24 de abril de 2015

Ejemplo de uso de Observer: Pulsar una tecla en el formulario y que se muestre otro con un mensaje

Ejemplo de uso de Observer:

 Pulsar una tecla en el formulario y que se muestre otro con un mensaje

Este es un ejemplo de como usar un objeto Observer para que cuando se pulse la tecla F2, se produzca un evento y se realize alguna actividad. En este caso se muestra otro formulario en la pantalla, con información proveniente del formulario donde se pulso F2.

Tenemos 2 archivos:
El formulario principal, donde se pulsará la tecla F2:

' Gambas class file

Event PulsaTeclaF2(informacion As Variant) ''Se define el evento PulsaTeclaF2


Public Sub _new()


End

Public Sub Form_Open()

End

Public Sub Form_KeyPress()

If Key.code = Key.f2 Then
Print "Has pulsado la tecla F2"
FormMensaje.addObjeto(Me) 'ver el código de addObjeto en FormMensaje
Raise PulsaTeclaF2("informacion que paso de donde he pulsado el evento" & Str$(Me) & " cuando se pulsa tecla F2")
'hace salte el evento y asi avisa a los objetos que esten obserbando este objeto
Endif

End
 
 Luego el formulario que mostrará el mensaje y que estará observando al formulario principal:

' Gambas class file

Public observador As Observer 'mi obsevador que observará los objetos que le pase

Public Sub Form_Open()

Me.title = "Mensaje"
Me.Center()

End

Public Sub addObjeto(obj As Object)

observador = New Observer(obj) As "operaciones" 'añado a mi observador el objeto que me pasan

End

Public Sub operaciones_PulsaTeclaF2(dato As Variant)
'se ejecuta cuando salta el evento PulsaTeclaF2

Label1.text = dato
Me.Show() 'muestro el formulario

End

 Os dejo un video de su funcionamiento:

Código fuente:archivo alojado en google drive


Saludos

Julio