Совместимость по присваиванию
Совместимость по присваиванию необходима, если имеет место присваивание значения, например, в операторе присваивания или при передаче значений параметров.
Значение типа 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.
На этапе компиляции и выполнения выдается сообщение об ошиб- ке, если совместимость по присваиванию необходима, а ни одно из условий предыдущего списка не выполнено.