События event

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску

Данный пример иллюстрирует использование событий. Они являются переменными-делегатами с некоторыми ограничениями, препятствующими их порче вне класса, где они определены. В частности, для них запрещена операция := и явный вызов вне класса, где определено событие.

type 
  MyClass = class
    event OnMyEvent: procedure;
    procedure SimulateEvent;
    begin
      if OnMyEvent<>nil then 
        OnMyEvent;
    end;
  end;

procedure MyHandler;
begin
  writeln('Произошло событие')
end;  
  
var a: MyClass;  

begin
  a := new MyClass;
  a.OnMyEvent += MyHandler;
  a.SimulateEvent;
end.

Ссылки