98 lines
1.4 KiB
ObjectPascal
98 lines
1.4 KiB
ObjectPascal
unit delegates5u;
|
|
|
|
type TFunc1 = function : integer;
|
|
TFunc2 = function(i : integer) : integer;
|
|
TFunc3 = function(var i : integer) : integer;
|
|
TFunc4 = function(params a : array of integer) : integer;
|
|
TFunc5 = function(const i : integer) : integer;
|
|
TProc1 = procedure;
|
|
TProc2 = procedure(i : integer);
|
|
TProc3 = procedure(params a : array of integer);
|
|
|
|
function Func1 : integer;
|
|
begin
|
|
end;
|
|
|
|
function Func2(i : integer) : integer;
|
|
begin
|
|
end;
|
|
|
|
function Func3(var i : integer) : integer;
|
|
begin
|
|
end;
|
|
|
|
function Func4(params a : array of integer) : integer;
|
|
begin
|
|
end;
|
|
|
|
function Func5(const i : integer) : integer;
|
|
begin
|
|
end;
|
|
|
|
procedure Proc1;
|
|
begin
|
|
end;
|
|
|
|
procedure Proc2(i: integer);
|
|
begin
|
|
end;
|
|
|
|
procedure Proc3(params arr : array of integer);
|
|
begin
|
|
end;
|
|
|
|
procedure Test1(f : TFunc1);
|
|
begin
|
|
f;
|
|
end;
|
|
|
|
procedure Test2(f : TFunc2);
|
|
begin
|
|
f(2);
|
|
end;
|
|
|
|
procedure Test3(f : TFunc3);
|
|
begin
|
|
var i := 1;
|
|
f(i);
|
|
end;
|
|
|
|
procedure Test4(f : TFunc5);
|
|
begin
|
|
var i := 0;
|
|
f(i);
|
|
end;
|
|
|
|
var f1 : TFunc1;
|
|
f2 : TFunc2;
|
|
f3 : TFunc3;
|
|
f4 : TFunc4;
|
|
f5 : TFunc5;
|
|
i : integer;
|
|
p1 : TProc1;
|
|
p2 : TProc2;
|
|
p3 : TProc3;
|
|
|
|
begin
|
|
f1 := Func1;
|
|
f2 := Func2;
|
|
f3 := Func3;
|
|
f4 := Func4;
|
|
f5 := Func5;
|
|
f1;
|
|
f2(2);
|
|
f3(i);
|
|
f4(1,2,3);
|
|
f5(i);
|
|
p1 := Proc1;
|
|
p2 := Proc2;
|
|
p3 := Proc3;
|
|
p1;
|
|
p2(2);
|
|
p3(1,2);
|
|
Test1(Func1);
|
|
Test2(Func2);
|
|
Test3(Func3);
|
|
Test4(Func5);
|
|
|
|
end. |