2025-10-12 22:21:43 +03:00
|
|
|
|
// Все возможные способы инициализации поцедурной переменной
|
2015-12-28 14:25:15 +03:00
|
|
|
|
// Процедурный тип реализован через делегаты .NET, для него доступны операции +=, -=
|
2015-05-14 22:35:07 +03:00
|
|
|
|
|
|
|
|
|
|
procedure pp;
|
|
|
|
|
|
begin
|
2025-10-12 22:21:43 +03:00
|
|
|
|
Println('Вызов обычной процедуры');
|
2015-05-14 22:35:07 +03:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
A = class
|
|
|
|
|
|
private
|
|
|
|
|
|
x: integer;
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create(xx: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
x := xx;
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure pp;
|
|
|
|
|
|
begin
|
2025-10-12 22:21:43 +03:00
|
|
|
|
Println('Вызов метода класса, значение поля равно',x);
|
2015-05-14 22:35:07 +03:00
|
|
|
|
end;
|
|
|
|
|
|
class procedure ppstatic;
|
|
|
|
|
|
begin
|
2025-10-12 22:21:43 +03:00
|
|
|
|
Println('Вызов классового метода класса');
|
2015-05-14 22:35:07 +03:00
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
2025-10-12 22:21:43 +03:00
|
|
|
|
var p: procedure;
|
|
|
|
|
|
|
2015-05-14 22:35:07 +03:00
|
|
|
|
p := pp;
|
|
|
|
|
|
var a1: A := new A(5);
|
|
|
|
|
|
p += a1.pp;
|
|
|
|
|
|
p += A.ppstatic;
|
|
|
|
|
|
p;
|
2025-10-12 22:21:43 +03:00
|
|
|
|
Println;
|
2015-05-14 22:35:07 +03:00
|
|
|
|
p -= pp;
|
|
|
|
|
|
p;
|
|
|
|
|
|
end.
|