Обработка событий
Клиентское приложение 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 |
Вызывается при передаче сообщения от сервера компоненту |