none
Manejadores de eventos RRS feed

  • Pregunta

  • Holas, tengo un problema y tal vez me pueden ayudar, es sobre los manejadores de eventos, es que no entiendo muy bien como es que se trabaja con éstos o cuando los uso.

    Gracias de antemano.

    lunes, 28 de julio de 2008 4:28

Respuestas

  • Hola de nuevo,

    Para explicarlo simple cada aplicacion mantiene una lista de eventos, esta lista puede crearse automaticamente cuando declaramos las funciones y las asignamos para que disparen a determinados eventos del objecto. O bien cuando las construimos manualmente utilizando los mandatos AddHandler o RemoveHandler.

     

    En resumen el sistema interactua con la aplicacion de modo que cuando esta dispara un evento, este apunta la direccion donde debe ejecutarse el codigo. Entonces es el propio sistema quien supervisa esa "lista" de eventos para dirigir o bifurcar la ejecucion de la aplicacion a cada capsula de codigo, es una especie de vectorizacion de interrupciones, donde la aplicacion se ejecuta como una tarea con sus respectivos estados en conjunto, priorizando y ejecutando porciones de la misma segun los eventos que van produciendose.

     

    Una exlpicacion mas completa : http://en.wikipedia.org/wiki/Event_handler aunque quizas mas dificil de entender

    Saludos,
    Pep Lluis,

     

     

    lunes, 28 de julio de 2008 15:48

Todas las respuestas

  • Hola Lilinet,

    En la programación orientada a objetos nos comunicamos con sus : Propiedades, Metodos y Eventos. Los eventos son señales asociadas a nuestras funciones, están señales se utilizan para disparar la ejecución selectiva de nuestro código.

    Es evidente de que cada objeto dispone de sus capacidades en correspondencia a la funcionalidad que encapsula.

    Para poner un caso, sigue el siguiente ejemplo, espero que el te aporte un poquito de luz, existen muchismos artículos sobre programación orientada a objeto, en todo caso toma lo siguiente como una entradilla y no dudes en continuar la conversación si tienes cualquier curiosidad o necesitas cualquier aclaración.

    Saludos,
    Pep Lluis,

     

        Private Sub Form1_Load(…..) Handles MyBase.Load

            Dim MiBoton As New Button

            'Podemos subscribirnos manualmente al evento de un objeto

            'o bien utilizar el 'handles' en la funcion o sub.

            AddHandler MiBoton.Click, AddressOf DispararMiEvento

            'Igualmente con clases referenciadas

            Dim MiClase As New UnaClase

            AddHandler MiClase.DisparoEvento, AddressOf MiOtroEvento

        End Sub

     

        Private Sub DispararMiEvento()

            '

            ' Codigo... a ejecutar cuando pulsan el boton

            '

        End Sub

     

        Private Sub MiOtroEvento()

            '

            ' recibo el evento generado

            ' por el timer de UnaClase

            '

            MessageBox.Show("Tiempo!!")

        End Sub

     

    End Class

     

    ' Esta clase asigna el evento 'elapsed' del timer

    ' a la sub tiempo, esta sub se ejecuta cada 5"

    ' La sub tiempo utiliza el evento 'DisparoEvento'

    ' que se propagara a los que esten subscritos al

    ' mismo... desde 'addhandler'. Por lo tanto en

    ' nuestro caso el cliente (nuestro form'

    ' recibira el disparo de MiOtroEvento cada 5"

    '

    Class UnaClase

        Event DisparoEvento()

        WithEvents crono As New Timers.Timer

     

        Sub New()

            crono.Interval = 5000 'Fijar un intervalo de 2"

            crono.Enabled = True

        End Sub

     

        Sub Tiempo() Handles crono.Elapsed

            RaiseEvent DisparoEvento()

        End Sub

    End Class

     

    lunes, 28 de julio de 2008 6:59
  •  

    Hola Pep Lluis, muchas gracias por responder a mi duda, pero para entenderte mejor, en el ejemplo que propones, quienes actuan como manejadores de eventos?. Ya vi como a un evento que se dispara se le puede asociar un metodo establecido, se ve muy interesante pero quisiera saber donde estan los manejadores de eventos.
    lunes, 28 de julio de 2008 14:41
  • Hola de nuevo,

    Para explicarlo simple cada aplicacion mantiene una lista de eventos, esta lista puede crearse automaticamente cuando declaramos las funciones y las asignamos para que disparen a determinados eventos del objecto. O bien cuando las construimos manualmente utilizando los mandatos AddHandler o RemoveHandler.

     

    En resumen el sistema interactua con la aplicacion de modo que cuando esta dispara un evento, este apunta la direccion donde debe ejecutarse el codigo. Entonces es el propio sistema quien supervisa esa "lista" de eventos para dirigir o bifurcar la ejecucion de la aplicacion a cada capsula de codigo, es una especie de vectorizacion de interrupciones, donde la aplicacion se ejecuta como una tarea con sus respectivos estados en conjunto, priorizando y ejecutando porciones de la misma segun los eventos que van produciendose.

     

    Una exlpicacion mas completa : http://en.wikipedia.org/wiki/Event_handler aunque quizas mas dificil de entender

    Saludos,
    Pep Lluis,

     

     

    lunes, 28 de julio de 2008 15:48
  • OK Pep Lluis, gracias nuevamente por tu ayuda, y de hecho me has dado un punto de inicio muy bueno en este tema, tus explicaciones y referencias han sido muy buenas, gracias por  todo Lilinet.

     

     

    miércoles, 30 de julio de 2008 4:30