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")
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