События event: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) (Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...) |
Mikst (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
Данный пример иллюстрирует использование событий. Они являются переменными-делегатами с некоторыми ограничениями, препятствующими их порче вне класса, где они определены. В частности, для них запрещена операция := и явный вызов вне класса, где определено событие. | |||
<source lang="Delphi">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.</source> | |||
== Ссылки == | == Ссылки == | ||
*[[Особенности языка: продвинутый уровень]] | *[[Особенности языка: продвинутый уровень]] | ||
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] | *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] |
Текущая версия от 13:08, 16 января 2010
Данный пример иллюстрирует использование событий. Они являются переменными-делегатами с некоторыми ограничениями, препятствующими их порче вне класса, где они определены. В частности, для них запрещена операция := и явный вызов вне класса, где определено событие.
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.