Операнды в выражениях должны быть совместимых типов. Совместимость типов величин, участвующих в каждой операции, достигается при выполнении по крайней мере одного из следующих условий.
Оба типа одинаковые.
Оба типа вещественные.
Оба типа целочисленные.
Один тип является поддиапазоном другого.
Оба типа являются отрезками одного и того же основного типа.
Оба типа являются множественными типами с совместимыми базовыми типами.
Один тип является строковым типом, другой — строковым типом или типом pchar.
Один тип — pointer, другой — любой тип указателя.
Один тип — pchar, другой — символьный массив с нулевой базой вида array [0 .. X] of char (только при разрешении расширенного синтаксиса директивой {$X +}).
Оба типа являются указателями идентичных типов (только при разрешении расширенного синтаксиса директивой {$X+}).
Оба типа являются процедурными с идентичными типами результатов, одинаковым числом параметров и соответствием между параметрами.