2015-12-28 14:25:15 +03:00
|
|
|
|
// Все возможные способы инициализации поцедурной переменной
|
|
|
|
|
|
// Процедурный тип реализован через делегаты .NET, для него доступны операции +=, -=
|
2015-05-14 22:35:07 +03:00
|
|
|
|
|
|
|
|
|
|
procedure pp;
|
|
|
|
|
|
begin
|
2015-12-28 14:25:15 +03:00
|
|
|
|
writeln('Вызов обычной процедуры');
|
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
|
2015-12-28 14:25:15 +03:00
|
|
|
|
writeln('Вызов метода класса, значение поля равно ',x);
|
2015-05-14 22:35:07 +03:00
|
|
|
|
end;
|
|
|
|
|
|
class procedure ppstatic;
|
|
|
|
|
|
begin
|
2015-12-28 14:25:15 +03:00
|
|
|
|
writeln('Вызов классового метода класса');
|
2015-05-14 22:35:07 +03:00
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
var p: procedure;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
|
p := pp;
|
|
|
|
|
|
var a1: A := new A(5);
|
|
|
|
|
|
p += a1.pp;
|
|
|
|
|
|
p += A.ppstatic;
|
|
|
|
|
|
p;
|
|
|
|
|
|
end.
|