Операторы += и -= для процедурных переменных

Операторы += и -= для процедурных переменных

Оператор присваивания += предназначен для присоединения к процедурной переменной процедуры, оператор присваивания -= - для отсоединения. Подпрограммы вызываются в порядке присоединения. Например:

procedure mult2(var r: real);

begin

r := 2 * r;

end;

procedure add3(var r: real);

begin

r := r + 3;

end;

var

p: procedure (var x: real);

r: real;

begin

r := 1;

p := mult2;

p += add3;

p(r); // r := 2 * r; r := r + 3;

p -= mult2;

p(r); // r := r + 3;

end.

Отсоединение не присоединенных подпрограмм не выполняет никаких действий.

Кроме того, к процедурной переменной можно прикреплять/откреплять статические и экземплярные методы классов. Пример см. в теме процедурные переменные.

Операторы += и -= используются также для добавления/удаления обработчиков для событий .NET. Например:

procedure OnTimer1(sender: object; e: System.Timers.ElapsedEventArgs);

begin

write(1);

end;

begin

var Timer1 := new System.Timers.Timer(1000);

Timer1.Elapsed += OnTimer1;

Timer1.Start;

while True do

Sleep(1000);

end.