Иногда, например, в выражениях и операциях сравнения, требу-
ется совместимость типов. Совместимость типов, кроме того, явля-
ется важной предпосылкой для совместимости по присваиванию.
Совместимость типов имеет место, если выполняется по крайней
мере одно из следующих условий:
* Оба типа являются одинаковыми.
* Оба типа являются вещественными типами.
* Оба типа являются целочисленными.
* Один тип является поддиапазоном другого.
* Оба типа являются отрезками одного и того же основного ти-
па.
* Оба типа являются множественными типами с совместимыми ба-
зовыми типами.
* Один тип является строковым типом, а другой - строковым
типом, упакованным строковым типом или типом PChar;
* Один тип - это тип Pointer, а другой - любой ссылочный
тип.
* Один тип является типом PChar, а другой - символьным мас-
сивом с нулевой базой вида array[0..X] of Char (это дейс-
твует только при разрешении директивой {$X+} расширенного
синтаксиса).
* Оба типа являются указателями идентичных типов (это дейс-
твует только при разрешении указателя с проверкой типа ди-
рективой {$X+}).
* Оба типа являются процедурными с идентичными типами ре-
зультатов, одинаковым числом параметров и соответствием
между параметрами.