Совместимость по присваиванию необходима, если имеет место
присваивание значения, например, в операторе присваивания или при
передаче значений параметров.
Значение типа T1 является совместимым по присваиванию с ти-
пом T2 (то есть допустим оператор T1:=T2), если выполняется одно
из следующих условий:
* T1 и T2 имеют тождественные типы, и ни один из них не яв-
ляется файловым типом или структурным типом, содержащим
компонент с файловым типом на одном из своих уровней.
* T1 и T2 являются совместимыми порядковыми типами, и значе-
ния типа T2 попадают в диапазон возможных значений T1.
* T1 и T2 являются вещественными типами, и значения типа T2
попадают в диапазон возможных значений T1.
* T1 является вещественным типом, а T2 является целочислен-
ным типом.
* T1 и T2 являются строковыми типами.
* T1 является строковым типом, а T2 является символьным ти-
пом (Char).
* T1 является строковым типом, а T2 является упакованным
строковым типом.
* T1 и T2 являются совместимыми упакованными строковыми ти-
пами.
* T1 и T2 являются совместимыми множественными типами, и все
члены значения типа T2 попадают в диапазон возможных зна-
чений T1.
* T1 и T2 являются совместимыми типами указателей.
* T1 - это тип PChar, а T2 - это строковая константа (это
действует только при разрешении директивой {$X+} расширен-
ного синтаксиса).
* T1 является типом PChar, а T2 - символьным массивом с ну-
левой базой вида array[0..X] of Char (это действует только
при разрешении директивой {$X+} расширенного синтаксиса).
* T1 и T2 являются совместимыми процедурными типами.
* T1 представляет собой процедурный тип, а T2 - процедура
или функция с идентичным типом результата, идентичным чис-
лом параметров и соответствием между типами параметров.
* Объектный тип T2 совместим по присваиванию с объектным ти-
пом T1, если T2 является доменом T1.
* Тип указателя Р2, указывающий на объект типа Т3, совместим
по присваиванию с типом указателя P1, указывающим на объ-
ект T1, если T2 является доменом T1.
На этапе компиляции и выполнения выдается сообщение об ошиб-
ке, если совместимость по присваиванию необходима, а ни одно из
условий предыдущего списка не выполнено.