Есть понятие процедуры-охранника (или процедуры-предохранителя, как угодно). Эта процедура семантически привязана к одному контролу. Но иногда удобно обрабатывать одним охранником сразу группу контролов, при этом возникает потребность различать, какой контрол в данном случае "предохраняется".
В
документации (в исходнике такого нет) модуля Dialog объявлена сигнатура расширенного охранника
Код:
PROCEDURE (n: INTEGER; VAR par: Par);
но как им пользоваться, не указано (по крайней мере, мне не удалось найти в документации ничего подобного).
Такая сигнатура используется в Controls, а используемый в редакторе свойств синтаксис вызова охранника выглядит так:
Код:
PrivInteractors.Guard(1)
Цифра, указанная в скобках, передаётся в процедуру расширенного охранника как параметр
n и это даёт возможность различать контролы.
P.S. Пример использования я обнаружил в CpcBookmarks