> -- Vlad писал(а):
> Динамическая проверка типа вообще не имеет смысла для массива
Так не для массива!

Пусть есть массив

array: ARRAY 100 OF MyMessageObject;

или запись с полем
## Код:
```
MyRecord = RECORD
  ...
  field1: MyMessageObject;
  field2: MyMessageObject;
  field3: MyMessageObject;
  ...
END;
```

и есть обработчик

PROCEDURE Handle (VAR msg: Message);

тогда вызовы Handle(array[42]) и Handle(myRecord.field2) вполне корректны не смотря на то, что в памяти по адресу ADR(array[42]) или ADR(myRecord.field2) тега типа MyMessageObject нигде поблизости не записано (тег типа находится в дескрипторе типа массива array или дескриптора типа MyRecord). Компилятор передаст тег типа MyMessageObject внутрь процедуры Handle неявно.