64 lines
2.6 KiB
HTML
64 lines
2.6 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
|
</object>
|
|
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
|
<param name="Keyword" value="with">
|
|
</object>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
|
<title></title>
|
|
<link rel="StyleSheet" href="../../default.css">
|
|
</head>
|
|
|
|
<body>
|
|
<H1>Операторы += и -= для процедурных переменных</H1>
|
|
<p>Оператор присваивания <code>+=</code> предназначен
|
|
для присоединения к процедурной переменной процедуры, оператор присваивания <code>-=</code>
|
|
- для отсоединения. Подпрограммы вызываются в порядке присоединения.
|
|
Например:</p>
|
|
<blockquote>
|
|
<p><code><b>procedure</b> mult2(<b>var</b> r: real);<br><b>begin</b><br> r := 2 * r;<br>
|
|
<b>end</b>;</code></p>
|
|
<p><code><b>procedure</b> add3(<b>var</b> r: real);<br><b>begin</b><br> r := r + 3;<br>
|
|
<b>end</b>;</code></p>
|
|
<p><code><b>var</b> <br>
|
|
p: <b>procedure</b> (<b>var</b> x: real);<br>
|
|
r: real;</code></p>
|
|
<p><code><b>begin</b><br>
|
|
r := 1;<br>
|
|
p := mult2;<br>
|
|
p += add3;<br>
|
|
p(r); // r := 2 * r; r := r + 3;<br>
|
|
p -= mult2;<br>
|
|
p(r); // r := r + 3; <br>
|
|
<b>end</b>.</code></p>
|
|
</blockquote>
|
|
<p>Отсоединение не присоединенных подпрограмм не выполняет
|
|
никаких действий.</p>
|
|
<p>Кроме того, к процедурной переменной можно прикреплять/откреплять
|
|
статические и экземплярные методы классов. Пример см. в теме
|
|
<a href="../Types/proctype.html">процедурные переменные</a>.</p>
|
|
<p>Операторы <code>+=</code> и
|
|
<code>-=</code> используются также для
|
|
добавления/удаления обработчиков для событий .NET.
|
|
Например:</p>
|
|
<blockquote>
|
|
<p><code><b>procedure</b> OnTimer1(sender: object; e:
|
|
System.Timers.ElapsedEventArgs);<br>
|
|
<b>begin</b><br>
|
|
write(1);<br>
|
|
<b>end</b>;</code></p>
|
|
<p><code><b>begin</b><br>
|
|
<b>var</b> Timer1 := new
|
|
System.Timers.Timer(1000);<br>
|
|
<b><font color="#FF0000">Timer1.Elapsed +=</font></b>
|
|
OnTimer1;<br>
|
|
Timer1.Start;<br>
|
|
<b>while</b> True <b>do</b> <br>
|
|
Sleep(1000);<br>
|
|
<b>end</b>.</code></p>
|
|
</blockquote>
|
|
</body>
|
|
|
|
</html> |