pascalabcnet/TestSuite/units/u_events1.pas
Бондарев Иван e6e67c193c initial commit
2015-05-14 21:35:07 +02:00

55 lines
734 B
ObjectPascal

unit u_events1;
type TProc = procedure(sender: object);
TProc2 = procedure;
var i : integer;
type TClass = class
event OnClick : procedure(sender: object);
class event OnClick_s : TProc2;
procedure MyProc(sender : object);
begin
i := 9;
end;
constructor Create;
begin
OnClick += MyProc;
OnClick(self);
assert(i=9);
OnClick -= MyProc;
end;
procedure RaiseMethod;
begin
if OnClick <> nil then
OnClick(self);
end;
class procedure RaiseMethod2;
begin
OnClick_s;
end;
end;
procedure MyProc(sender : object);
begin
i := 8;
end;
procedure MyProc2;
begin
i := 7;
end;
var t : TClass;
begin
t := new TClass;
t.OnClick += MyProc;
t.RaiseMethod;
assert(i=8);
TClass.OnClick_s += MyProc2;
TClass.RaiseMethod2;
assert(i=7);
end.