События

Событие - это член класса, который позволяет объекту или классу предоставлять уведомления. Клиенты могут ассоциировать исполняемый код с событиями путем предоставления обработчиков событий.

event-declaration:

attributesopt   event-modifiersopt   Event   identifier   :   type;

event-modifiers:

event-modifier

event-modifiers   event-modifier

event-modifier:

New

Public

Protected

Friend

Private

Shared

Virtual

Final

Override

Abstract

К определениям событий применяются те же правила, что и к определениям методов в отношении допустимых комбинаций модификаторов.

Тип, указанный в определении события, должен быть делегатом и должен иметь уровень доступа не ниже чем уровень доступа самого события. Для указания обработчика событий используется оператор присвоения событию.

Пример

Delegate LoadEventHandler(x, y, z: integer);
Delegate ErrorEventHandler(x, y: integer);

Abstract Class BaseClass
    //Абстректное событие, которое должно быть переопределено
    Abstract Public Event OnLoad: LoadEventHandler;
End Class;

Class UserObject: BaseClass
    //Переопределение абстрактного события
    Public Override Event OnLoad: LoadEventHandler;
    //Объявление собственного события
    Public Event OnError: ErrorEventHandler;

    Constructor UserObject();
    Begin
        //Установка обработчиков событий
        OnLoad := Load;
        OnLoad += LoadEx;
        OnError := CheckError;
    End Constructor;
    
    Sub DelEventHandler();
    Begin
        OnLoad := Null;
        OnError := Null;
    End Sub;

    //Процедуры - обработчики событий
    Sub Load(x, y, z: integer);
    Begin
        
    End Sub;

    Sub LoadEx(x, y, z: integer);
    Begin
        
    End Sub;

    Sub CheckError(x, y: integer);
    Begin
        
    End Sub;
End Class;

См.также:

Классы