<<
>>

Создание событий

Событие — это обычное свойство процедурного типа. Стандартные события име­ют тип TNotifyEvent. Однако при создании события пользователь может задейство­вать любой процедурный тип, объявленный ранее класса компонента.

Само событие обрабатывается с помощью специального метода, который называ­ется методом отправления уведомления о событии. Данный метод и выполняет обработку события, а также проверяет, назначен ли пользователем соответствую­щий обработчик события. Если обработчик назначен, то метод отправления уве­домления вызывает его. По соглашению имена свойств-обработчиков событий начинаются с префикса On, а имена методов отправления уведомления о событии имеют то же имя, что и свойство, но без префикса (например, OnDblClick — имя свой­ства-обработчика, DblClick — имя метода).

Методы отправления уведомления о событии представляют собой процедуры, ко­торые вызываются в том случае, когда компонент получает сообщение о произо­шедшем событии. Как правило, эти методы являются виртуальными и объявляют­ся в разделе protected класса компонента.

Таким образом, при создании события необходимо создать метод отправления уве­домления о событии, а также объявить поле и свойство, которые будут соответ­ствовать обработчику события, задаваемому пользователем:

TDBList = class(TCustomListBox) private

{ Private declarations }

FString: string;

FOnChange: TNotifyEvent;

function GetStringProp: string; virtual;

procedure SetStringProp(const Value: string); virtual;

protected

{ Protected declarations } procedure Change; virtual; public

{ Public declarations }

constructor Create(AOwner: TComponent): override; published

{ Published declarations } property StringProp: string read GetStringProp write SetStnngProp:

property OnChange: TNotifyEvent read FOnChange write FOnChange: end;

Стандартный код метода отправления уведомления о событии выглядит следую­щим образом:

procedure TDBList.Change; begin

// Обработка события

// Вызов обработчика события, заданного пользователем; if Assigned(FOnChange) then FOnChange(Self); end;

<< | >>
Источник: Избачков Ю. С., Петров В. Н.. Информационные системы. 2006

Еще по теме Создание событий:

  1. ПЛАНИРУЯ КАКОЕ-ТО СОБЫТИЕ, ЗАДЕРЖИТЕ В СЕБЕ ЭНЕРГИЮ, А НЕ ВЫПЛЕСКИВАЙТЕ ЕЕ В ЭМОЦИИ ИЛИ В СЛОВА. ЭНЕРГИЯ НУЖНА ДЛЯ ФОРМИРОВАНИЯ ЭТОГО СОБЫТИЯ.
  2. 5. События
  3. От рассказа о событиях
  4. 3. Юридические факты - события
  5. События
  6. Правило воспроизводства событий и действий
  7. Заключение по событиям (случаям) и состязаниям
  8. Возможность прошлого события.
  9. Секс как Событие
  10. Исторические события.
  11. Историческое событие.