Директивы компилятора
Директивы компилятора - это специальные команды компилятору в ходе компиляции, записанные в тексте программы внутри последовательности {$ ... }. Фигурные скобки обозначают комментарий, но наличие знака $ после { говорит о том, что внутри комментария располагается директива компилятора.
Общий вид директивы компилятора:
{$ИмяДирективы параметры}
Список директив компилятора
{$apptype <тип приложения>} - задание типа приложения (windows/console).
{$reference <имя файла>} - подключение библиотеки.
{$gendoc <параметр>} -генерация документации в XML формате. Параметры: true, false.
{$mainresource <имя файла>} - подключение .res файла в качестве неуправляемого ресурса
{$resource <имя файла>} - подключение файла в качестве управляемого ресурса
{$region <имя региона>} - начало региона (используется в редакторе в режиме сворачивания кода
{$endregion} - конец региона
{$product <название продукта>} - название продукта
{$version <версия продукта>} - версия продукта
{$company <компания>} - компания
{$copyright <копирайт>} - копирайт
{$trademark <торговая марка>} - торговая марка
{$include <имя файла>} - включение в текст программы содержимого указанного файла.
{$define <идентификатор>} - определение имени, используемого в директивах $ifdef, $ifndef.
{$undef <идентификатор>} - исключение имени, используется для отмены действия директивы $define.
{$ifdef <идентификатор>} - начало блока условной компиляции (проверяется условие: "идентификатор определен").
{$ifndef <идентификатор>} - начало блока условной компиляции (проверяется условие: "идентификатор не определен").
{$else} - директива "иначе" в блоке условной компиляции.
{$endif} - завершение блока условной компиляции.
{$faststrings} - строки с быстрым доступом к символам на запись, но со ссылочной семантикой.
{$string_nullbased+} - включение строк, индексируемых с 0.
{$string_nullbased-} - выключение строк, индексируемых с 0.
Директивы $ifdef, $ifndef совместно с директивами $else и $endif управлют условной компиляцией частей исходного файла. Каждой директиве $ifdef, $ifndef должна соответствовать завершающая ее директива $endif. Между директивами $ifdef, $ifndef и $endif допускается произвольное количество блоков условной компиляции (в том числе вложенных) и не более одной директивы $else.
Пример. Использование директив условной компиляции.
{$define DEBUG}
begin
{$ifndef
DEBUG}
writeln('Имя DEBUG не определено');
{$else}
writeln('Имя DEBUG определено');
{$endif}
end.