Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Como Generar Un Evento Creado Por Ti?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Generar Un Evento Creado Por Ti? 
 
buenas,

estoy tratando de crear eventos en una clase pero no me sale...

esto es lo que he hecho....

' gambas class file

Export


Inherits UserControl

Event Abajo
Event Arriba




Private $Zona As DrawingArea


Public Sub _new()
  
  $Zona = New DrawingArea(Me) As "Zona"
  
  $Zona.Background = Color.Blue
  $Zona.Cached = True
  $Zona.X = 20
  $Zona.y = 100
  $Zona.Height = 100
  $Zona.Width = 300
  $Zona.Visible = True
  
  $Zona.Show
  
  
End



Public Sub Zona_Arriba()
  
  Print "abajo  ñññññññññññ"
  
End

Public Sub Clic4_Arriba()
  
  Print "Arriba  zzzzzzzzzzz"
  
End


Public Sub Zona_DblClick()
  Print "dobleclic"
  Print Mouse.y
  
  If Mouse.y < ($Zona.Height / 2) Then
    Print "arriba ejecutado"
    Raise Arriba
  Else
    Print "abajo ejecutado"
    Raise Abajo
  Endif
  
End


lo que estoy tratando de hacer es....

por medio de un drawingarea detectar si el usuario hizo clic de la mitad de la altura de mas arriba o de mas abajo,

lanzando el evento arriba si es menor a la altura dividido 2 o  abajo si es mayor a la altura dividido 2.

hasta el lanzamiento del evento voy bien, la cuestión es... como es la sintaxis para la rutina del evento y lo que se ejecutara cuando el raise lance el evento???

prueba1-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: prueba1-0.0.1.tar.gz
Tamaño: 17.21 KB
Descargado: 71 veces
prueba1-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: prueba1-0.0.1.tar.gz
Tamaño: 17.21 KB
Descargado: 71 veces
prueba1-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: prueba1-0.0.1.tar.gz
Tamaño: 17.21 KB
Descargado: 71 veces

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Generar Un Evento Creado Por Ti? 
 
Hola v3ctor.

Bueno, hay mucho código sobrante. He eliminado lo sobrante para que veas como funciona.
Algo que te falta es el observador.

Por ejemplo supongamos que nuestra clase o componente (depende de lo que quieras hacer)  va a heredar de DrawingArea.

El código de la clase Clic4 puede ser este:

' gambas class file

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 = 300  
  End With
  
End

Public Sub Zona_Abajo()
  
  Print "Se ejecuta el código del evento Abajo"
  
End

Public Sub Zona_Arriba()
  
  Print "Se ejecuta el código del evento Arriba"
  
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
 


Y el del formulario:

Public mizona As Clic4

Public Sub Form_Open()

mizona = New Clic4(Me)
  

End
 


No me he preocupado de centrar el Drawingarea o dimensiones.  

Te adjunto el código.

prueba2.tar.gz
Descripción:  
Descargar
Nombre del archivo: prueba2.tar.gz
Tamaño: 18.59 KB
Descargado: 62 veces
prueba2.tar.gz
Descripción:  
Descargar
Nombre del archivo: prueba2.tar.gz
Tamaño: 18.59 KB
Descargado: 62 veces
prueba2.tar.gz
Descripción:  
Descargar
Nombre del archivo: prueba2.tar.gz
Tamaño: 18.59 KB
Descargado: 62 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Generar Un Evento Creado Por Ti? 
 
Shell
Me gusta tu ejemplo, lo añadiré al curso de gambas, ( con tu permiso claro=.


Yo tengo este ejemplo hecho:
http://cursogambas.blogspot.com.es/...do-eventos.html

pero el tuyo es mucho más simple y mejor para explicar la relación entre observador y evento.
 




===================
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: Como Generar Un Evento Creado Por Ti? 
 
estemmm.... bueno el permiso tendrías que pedírmelo a mi que fui el de la idea.

solo que no estaba correcto el código    

pero si me haces la mención correspondiente en tu blog te doy el permiso  
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Generar Un Evento Creado Por Ti? 
 
Pues claro, es para vosotros y para todos los que lo necesiten.
Bueno, cada uno ha puesto su granito de arena.  

Podíamos decir:

"Si no hay evento, no hay método".  

Julio:

Si, recuerdo el ejemplo del pelotón. Tengo que repasarlo mejor. ¿ Crees que se puede mejorar ?.  
Recuerdo que comentabas que tenías algún tipo de problema cuando lo hiciste. Creo que querías
crear mas de un observador o evento a la vez y solo te respondía uno.

A mí me gusta tu ejemplo del pelotón.

v3ctor:

Ya nos contaras como lo aplicaras en algún ejemplo.

¿ Habías usado alguna vez el UserControl ?.

Ahora podíamos probar a hacer lo mismo, pero sin herencia. A ver que sale.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 04 Enero 2016, 10:07; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Generar Un Evento Creado Por Ti? 
 
Shell:
Citar:

Ahora podíamos probar a hacer lo mismo, pero sin herencia. A ver que sale.

No!!!!, al usar la herencia le da mucha potencia a la nueva clase Clic4, y a las sucesivas que hereden de ella.
 




===================
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: Como Generar Un Evento Creado Por Ti? 
 
He ampliado un poco más el ejemplo, para que se vea "toda la potencia" de lo eventos, os dejo el código fuente.

EjemploObservadorEvento-0.0.1.tar.gz
Descripción: Ejemplo de uso de eventos y observadores 
Descargar
Nombre del archivo: EjemploObservadorEvento-0.0.1.tar.gz
Tamaño: 11.27 KB
Descargado: 66 veces
EjemploObservadorEvento-0.0.1.tar.gz
Descripción: Ejemplo de uso de eventos y observadores 
Descargar
Nombre del archivo: EjemploObservadorEvento-0.0.1.tar.gz
Tamaño: 11.27 KB
Descargado: 66 veces
EjemploObservadorEvento-0.0.1.tar.gz
Descripción: Ejemplo de uso de eventos y observadores 
Descargar
Nombre del archivo: EjemploObservadorEvento-0.0.1.tar.gz
Tamaño: 11.27 KB
Descargado: 66 veces

 




===================
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: Como Generar Un Evento Creado Por Ti? 
 
excelente julio, gracias
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Generar Un Evento Creado Por Ti? 
 
Julio:

Muy bien.

Si que se puede complicar con el segundo observador, hay que estar muy atento.
Puede no captarse a la primera. Que _Arriba y _Abajo tambien se pueda usar luego
en el formulario.  

Se que el código es pequeño en los dos evento observador con el manejador "vigilo".
De esta forma es aun mas pequeño.

Public Sub vigilo_Arriba()  
  
  MostrarDirFlecha("arriba")
  
End

Public Sub vigilo_Abajo()
  
  MostrarDirFlecha("abajo")
  
End


Public Sub MostrarDirFlecha(pos As String)

  Dim frase As String
  
  frase = Subst("Se ejecuta el código del evento &1, en el formulario ", pos)
  Print frase
  PictureBoxFlecha.Stretch = True ' para que se adapte el dibujo a las dimensiones del picturebox  
  PictureBoxFlecha.Picture = IIf(pos = "arriba", Picture["fechaArriba.png"], Picture["fechaAbajo.png"])
  
End
 


Estoy con otro ejemplo, pero es tan simple, que no sé si es adecuado añadir un evento o tan solo un método.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Generar Un Evento Creado Por Ti? 
 
Shell:

Lo bueno que tiene usar eventos, es que por lo siguiente:

Imagina que mañana añado otro formulario que haga algo cuando se produzca el evento _Arriba o _Abajo, ¡¡ no tengo que modificar nada de los anteriores clases ni formulario !!!, sino que solo con añadir un observador al nuevo formulario, me "entero" que pasa en el drawingarea.
 




===================
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
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Generar Gráficas Con El Componente G... chen_08 Controles/Librerías/Componentes 8 Martes, 19 Marzo 2013, 13:52 Ver último mensaje
Fenriz07
No hay nuevos mensajes Como Detectar Evento En Formulario Creado ... v3ctor General 3 Viernes, 27 Junio 2014, 16:18 Ver último mensaje
vuott
No hay nuevos mensajes Como Acceder A Un Control Creado En Tiempo... viejito Aplicaciones/Fragmentos de Código 4 Viernes, 11 Diciembre 2015, 16:41 Ver último mensaje
vuott
No hay nuevos mensajes Como Generar Paquetes De Instalación Para... v3ctor General 1 Sabado, 04 Enero 2020, 00:23 Ver último mensaje
tincho
 

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