pascalabcnet/TestSuite/formatter_tests/should/delegates1.pas

98 lines
1.3 KiB
ObjectPascal
Raw Permalink Normal View History

2018-09-20 22:21:16 +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.