
Lección 7: Eventos.
1.- Disparar y manejar eventos.
Para disparar un evento, una clase tiene que:
- Declarar el evento en la parte declarativa.
- Disparar el evento en uno de sus métodos.
Cuando se declara un evento se puede usar la adición EXPORTING para especificar parámetros que se pasan al manejador del evento, los parámetros siempre se pasan por valor.
2.- Eventos manejadores.
Los eventos se usan para ejecutar una serie de métodos. Estos métodos tienen que:
- Estar definidos como eventos manejadores (handler) de ese evento.
- Estar registrados en tiempo de ejecución para el evento.
El método manejador de eventos no tiene porque usar todos los parámetros pasados en la sentencia RAISE EVENT.
3.- Registro de métodos manejadores de eventos.
Para permitir a un método manejador de eventos reaccionar a un evento, se tiene que determinar en tiempo de ejecución el disparador al cual va a reaccionar.
Tipos de eventos:
- Eventos dependientes de instancia declarados en una clase.
- Eventos dependientes de instancia declarados en una interface.
- Eventos estáticos declarados en una clase.
- Eventos estáticos declarados en una interface.
El registro se aplica automáticamente a la clase entera o a todas las clases que implementan la interface que contiene el evento estático. En el caso de las interfaces, el registro también se aplica a las clases que aún no han sido cargadas cuando el manejador se registra.
4.- Coordinación en el manejo de eventos.
Después de la sentencia RAISE EVENT, todos los métodos manejadores registrados son ejecutados antes de que la siguiente sentencia sea procesada (manejo de eventos sincrónico).
Los métodos manejadores de eventos son ejecutados en el orden en el que son registrados.
Debido a que los manejadores de eventos son registrados dinámicamente, no se puede saber el orden en el que serán procesados. Por eso se deben programar todos los manejadores de eventos como se se fuesen a ejecutar todos simultaneamente.