Este ejemplo surgió a partir de este hilo del foro gambas:
http://www.gambas-es.org/viewtopic.php?f=1&t=5072
en el cual yo estaba buscando e investigando la forma de programar mis propios eventos. Después shell hizo su aporte y Julio lo remato con algunos arreglos mas, resultando en el ejemplo siguiente.
Clase personalizada llamada: DrawingZona
' gambas class file
'***********************************************************************
'Fuente: http://www.gambas-es.org/viewtopic.php?f=1&t=5072
'Victor (http://postapase.blogspot.com/), Shell, y Jsbsan
'copyright 2016
'***********************************************************************
Export
Inherits DrawingArea
Event Abajo
Event Arriba
Private observador1 As Observer
Public Sub _new()
observador1 = New Observer(Me) As "Zona"
With Me
.Background = Color.Blue
.X = 20
.y = 20
.Height = 100
.Width = 200
End With
End
Public Sub Zona_Abajo()
Print "Se ejecuta el código del evento Abajo, dentro de la clase drawingzona"
End
Public Sub Zona_Arriba()
Print "Se ejecuta el código del evento Arriba, dentro de la clase drawingzona "
End
Public Sub Zona_DblClick()
Print "dobleclic"
Print Mouse.y
If Mouse.y < (Me.Height / 2) Then
Print "arriba ejecutado ---->"
Raise Arriba
Else
Print "abajo ejecutado <----"
Raise Abajo
Endif
End
'***********************************************************************
'Fuente: http://www.gambas-es.org/viewtopic.php?f=1&t=5072
'Victor (http://postapase.blogspot.com/), Shell, y Jsbsan
'copyright 2016
'***********************************************************************
Export
Inherits DrawingArea
Event Abajo
Event Arriba
Private observador1 As Observer
Public Sub _new()
observador1 = New Observer(Me) As "Zona"
With Me
.Background = Color.Blue
.X = 20
.y = 20
.Height = 100
.Width = 200
End With
End
Public Sub Zona_Abajo()
Print "Se ejecuta el código del evento Abajo, dentro de la clase drawingzona"
End
Public Sub Zona_Arriba()
Print "Se ejecuta el código del evento Arriba, dentro de la clase drawingzona "
End
Public Sub Zona_DblClick()
Print "dobleclic"
Print Mouse.y
If Mouse.y < (Me.Height / 2) Then
Print "arriba ejecutado ---->"
Raise Arriba
Else
Print "abajo ejecutado <----"
Raise Abajo
Endif
End
Formulario
' gambas class file
'***********************************************************************
'Fuente: http://www.gambas-es.org/viewtopic.php?f=1&t=5072
'Victor (http://postapase.blogspot.com/), Shell, y Jsbsan
'copyright 2016
'***********************************************************************
Public mizona As DrawingZona
Public obs As Observer
Public Sub Form_Open()
mizona = New DrawingZona(Me)
'vigilo el objeto "mizona", para si se produce un evento Arriba o Abajo, hago algo en el formulario principal
obs = New Observer(mizona) As "vigilo" 'este observador observará lo que ocurre en el objeto "mizona"
End
Public Sub vigilo_Arriba()
Print "Se ejecuta el código del evento Arriba, en el formulario "
PictureBoxFlecha.Stretch = True ' para que se adapte el dibujo a las dimensiones del picturebox
PictureBoxFlecha.Picture = Picture["fechaArriba.png"]
End
Public Sub vigilo_Abajo()
Print "Se ejecuta el código del evento Abajo, en el formulario "
PictureBoxFlecha.Stretch = True ' para que se adapte el dibujo a las dimensiones del picturebox
PictureBoxFlecha.Picture = Picture["fechaAbajo.png"]
End
'***********************************************************************
'Fuente: http://www.gambas-es.org/viewtopic.php?f=1&t=5072
'Victor (http://postapase.blogspot.com/), Shell, y Jsbsan
'copyright 2016
'***********************************************************************
Public mizona As DrawingZona
Public obs As Observer
Public Sub Form_Open()
mizona = New DrawingZona(Me)
'vigilo el objeto "mizona", para si se produce un evento Arriba o Abajo, hago algo en el formulario principal
obs = New Observer(mizona) As "vigilo" 'este observador observará lo que ocurre en el objeto "mizona"
End
Public Sub vigilo_Arriba()
Print "Se ejecuta el código del evento Arriba, en el formulario "
PictureBoxFlecha.Stretch = True ' para que se adapte el dibujo a las dimensiones del picturebox
PictureBoxFlecha.Picture = Picture["fechaArriba.png"]
End
Public Sub vigilo_Abajo()
Print "Se ejecuta el código del evento Abajo, en el formulario "
PictureBoxFlecha.Stretch = True ' para que se adapte el dibujo a las dimensiones del picturebox
PictureBoxFlecha.Picture = Picture["fechaAbajo.png"]
End
Descargar ejemplo
(necesario estar registrado en el foro)
No hay comentarios.:
Publicar un comentario