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