Вот еще одна причина неправильного выравнивания кода по сравнению с маркерами точек останова (сине-красная «таблетка» в желобе).
Редактор распознает три разных конца строки,
- CRLF (возврат каретки - пара перевода строки)
- CR только
- LF only
Из них CRLF
является значением по умолчанию в редакторе.
Однако компилятор, похоже, не считает CR only
окончанием строки, только CRLF
и LF only
. Таким образом, если ваш исходный файл содержит один или несколько CR only
, «синие таблетки» будут смещены относительно источника.
Возможно, вы получили исходные файлы с символом CR only
EOL (конец строки), например, с. интернет. Я помню, MAC OS использовала CR only
в качестве EOL.
Чтобы проверить EOL в вашем файле, вы можете включить отображение EOL в редакторе
( Tools - Options - Editor options - Source options - Show line breaks)
.
Символы выглядят странно (см. Изображения ниже), но просто C сверху L для CRLF, C сверху R для CR и L сверху F для LF.
На следующих изображениях показаны обычные EOL (CRLF
) и EOLS после того, как я принудительно установил CR only
для одной строки и LF only
для другой строки в шестнадцатеричном редакторе. Как сказано выше, именно CR only
смещает маркеры точки останова из исходного кода.
Обычный CRLF
EOL:
Одна строка с CR only
и одна с LF only
:
Fix
Чтобы сбросить все EOL на CRLF
, снимите отметку Preserve line ends
в Editor Options
( Tools - Options - Editor options)
,
внести тривиальное изменение, чтобы файл был помечен как измененный, закройте файл, сохраните изменения в XYZ.pas? ДА и вновь открыть.
Теперь все окончания строки - CRLF. Перестройте проект, и все шары точки останова будут в правильных местах.