Иллюстрированный самоучитель по Kylix

       

Метод диспетчеризации события TControl = class (TComponent) private



Листинг 19.12. Метод диспетчеризации события TControl = class (TComponent) private

FOnClick: TNotifyEvent; protected
procedure Click; dynamic;
property OnClick: TNotifyEvent read FOnClick write FOnClick; end;
implementation
procedure TControl.Click; begin
if Assigned (FOnClick) then FOnClick (Self);
end;

Обратите внимание: свойство OnClick имеет тип TNotifyEvent, который представляет собой процедуру с одним параметром Sender типа TObject:

TNotifyEvent = procedure (Sender: TObject) of object;

Иначе говоря, когда происходит вызов метода Click, осуществляется проверка, ссылается ли FOnClick на какой-либо метод, и если ссылается, то происходит вызов этого метода.

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

При возникновении какого-либо события операционная система передает приложению не только информацию о наступлении данного события, но и некоторую дополнительную информацию. В нашем примере при обработке события нажатия левой кнопки мыши в приложение поступает информация о координатах внутри клиентской части компонента, в которых произошло нажатие левой кнопки мыши. Например, код, приведенный в листинге 19.13, выводит при наступлении события нажатия левой кнопки мыши на форме координаты указателя мыши.



Содержание раздела