pascalabcnet/TestSuite/delegates1.pas

96 lines
1.4 KiB
ObjectPascal
Raw Permalink Normal View History

2015-05-14 22:35:07 +03:00
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.