Обработка событий

Клиентское приложение Delphi, работающее с сервером InterBase, имеет возможность отслеживать события, происходящие в базе данных и вызываемые другими процессами или приложениями. Для этого используется компонент TiBEvents. Он позволяет определить список необходимых событий и предоставляет разработчику простой механизм отслеживания возникающих на сервере событий. Свойства и методы компонента TiBEvents представлены в табл. 18.7.

Список событий задается свойством

property Events: TStrings;

в котором можно определить до 15 контролируемых событий.

Выбранные события необходимо зарегистрировать на сервере. Для этого применяется метод

procedure RegisterEvents; 

Метод

procedure QueueEvents;

начинает процесс передачи сообщений от сервера.

При возникновении на сервере зарегистрированного события компонент вызывает метод-обработчик события

property OnEventAlert: TEventAlert;

TEventAlert = procedure) Sender: TObject; EventName: String; EventCount:

longint; var CancelAlerts: Boolean)

Параметр EventName содержит имя последнего произошедшего события.

Параметр EventCount содержит число заданных событий, произошедших с момента последнего вызова метода-обработчика.

Параметр CancelAlerts позволяет прервать процесс передачи сообщений приложению. Для этого необходимо присвоить параметру значение True.

Для возобновления работы компонента нужно снова использовать метод QueueEvents.

Таблица 18.7. Свойства и методы компонента TiBEvents

Объявление

Тип

Описание

Свойства

property Database: TIBDatabase;

Pb

Задает базу данных

property Events: TStrings;

Pb

Список контролируемых событий

property Queued: Boolean;

Ro

Значение True говорит о том, что процесс передачи сообщений работает

property Registered: Boolean;

Pb

Определяет регистрацию сообщений на сервере

Методы

procedure CancelEvents; 

Pu

Останавливает процесс передачи сообщений

procedure QueueEvents; 

Pu

Включает процесс передачи сообщений

procedure RegisterEvents; 

Pu

Проводит регистрацию сообщений на сервере

procedure UnRegisterEvents;

Pu

 Отменяет регистрацию сообщений на сервере

Методы-обработчики событий

property OnEventAlert:  TEventAlert; 

TEventAlert = procedure (Sender : TObject; EventName: String;  EventCount : longint ; var CancelAlerts : Boolean)

Pb

Вызывается при передаче сообщения от сервера компоненту