|
Обработка событий
Клиентское приложение 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;
|
|
|
property Events:
TStrings;
|
|
Список контролируемых событий
|
property Queued:
Boolean;
|
|
Значение True
говорит о том, что процесс передачи сообщений
работает
|
property Registered:
Boolean;
|
|
Определяет регистрацию сообщений
на сервере
|
|
|
|
|
Останавливает процесс передачи
сообщений
|
|
|
|
Включает процесс передачи сообщений
|
procedure RegisterEvents;
|
|
Проводит регистрацию сообщений
на сервере
|
procedure UnRegisterEvents;
|
|
Отменяет регистрацию
сообщений на сервере
|
Методы-обработчики событий
|
property OnEventAlert:
TEventAlert;
TEventAlert
= procedure (Sender : TObject; EventName: String;
EventCount : longint ; var CancelAlerts : Boolean)
|
|
Вызывается при передаче сообщения
от сервера компоненту
|
|