В Delphi также существуют предварительно скомпилированные инструкции, аналогичные C. Хотя этот тип инструкций эффективен только в текущем отдельном файле (возможно, автор не до конца понимает фактическое использование этого типа инструкций), этот тип инструкций Инструкция полезна для компиляции нескольких версий (например, публикация обучающей версии из стандартной версии) имеет весьма хорошее применение.
один. Введение инструкции:
1. Директива DEFINE:
Формат: {$DEFINE имя}
Описание: используется для определения символа (символа), действующего в текущей единице измерения. определенный
Затем вы можете использовать инструкции IF DEF и IFNDEF, чтобы определить, существует ли символ.
2. Команда UNDEF:
Формат: {$UNDEF имя}
Описание: Используется для отмены символа (Символа), который был определен в текущей единице измерения. Эта директива и DEFINE
используются вместе.
3. Директива IFDEF:
Формат: {$IFDEF имя}
Примечание. Если имя после этой директивы было определено, сегмент кода после этой директивы до {$ELSE} или {$ENDIF} будет скомпилирован.
4. Директива IFNDEF:
Формат: {$IFNDEF имя}
Примечание. Если имя после этой директивы не определено, сегмент кода после этой директивы до {$ELSE} или {$ENDIF} будет скомпилирован.
5. Инструкция IFOPT:
Формат: {переключатель $IFOPT}
Примечание. Если после этой инструкции установлен переключатель, сегмент кода после этой инструкции до {$ELSE} или {$ENDIF} будет скомпилирован.
Пример: {$IFOPT R+}
Writeln('Включить проверку диапазона при компиляции');
{$ENDIF}
6. ИНАЧЕ инструкция:
Формат: {$ELSE}
Описание: Определите, следует ли компилировать или игнорировать сегмент кода между инструкцией и {$ENDIF}, оценивая условное выражение префикса Ifxxx.
7. Директива ENDIF:
Формат: {$ENDIF}
Описание: Взаимодействует с Ifxxx для указания конечной позиции сегмента исходного кода условно предварительно скомпилированного сегмента.
два. пример:
Напишите примеры для выполнения работы по компиляции без сегментов кода, предварительно определив различные символы компиляции.
1. Создайте новый проект Delphi и добавьте кнопку «Кнопка» в форме модуля Unit1.
2. Напишите программу следующим образом:
блок Unit1;
интерфейс
использует
Windows, сообщения, SysUtils, классы, графика, элементы управления, формы, диалоги,
Стдктрлс;
тип
ТФорм1 = класс (ТФорма)
Кнопка1: Кнопка T;
PROcedure FormCreate (Отправитель: TObject);
процедура Button1Click (Отправитель: TObject);
частный
{Частные заявления}
общественный
{Публичные заявления}
а : Строка;
конец;
вар
Форма1: ТФорм1;
выполнение
{$R *.DFM}
{$DEFINE AAA} // Строка определения.
процедура TForm1.FormCreate(Отправитель: TObject);
начинать
а := 'Другое';
{$IFDEF ААА}
а := 'ААА';
{$ENDIF}
{$IFDEF BBB}
а := 'ВВВ';
{$ENDIF}
конец;
процедура TForm1.Button1Click(Отправитель: TObject);
начинать
Подпись := а;
конец;
конец.
{Примечание: жирный текст – это введенный код}
3. После компиляции и запуска нажмите кнопку, и в строке заголовка формы вы увидите «AAA». Программа компилирует оператор a := 'AAA'.
4. Измените сегмент программы, определяющий строку:
когда изменилось на
{$ОПРЕДЕЛИТЬ БББ}
Когда вы скомпилируете и запустите снова, вы увидите «BBB», отображаемое в строке заголовка формы. Программа компилирует оператор a := 'BBB'.
При отмене определения строки или изменении на
{$ОПРЕДЕЛИТЬ НИЧЕГО}
или другие имена, скомпилируйте и запустите еще раз, и в строке заголовка формы вы увидите «Другое». Программа компилирует только оператор a := 'Other'.
три. Как быстро создавать и изменять версии:
Используя инструкции предварительной компиляции, при создании нескольких версий одной и той же программы вам нужно только найти разные модули в каждой версии, последовательно определить унифицированные символы версии (Символы), а затем добавить инструкции условной предварительной компиляции в сегмент программы. Вы можете выбрать это. компилировать разные части программы во время фактической компиляции, что хорошо влияет на стандартизацию программы (определение единого символа версии) и конфиденциальность (разные версии компилируют разные части программы).
Однако, поскольку этот тип предварительно скомпилированной директивы может действовать только на текущий модуль, неудобство состоит в том, что символ версии не может быть определен один раз в общем модуле, а должен быть определен единый символ версии в каждом модуле. Вам необходимо убедиться, что все символы версий были изменены, чтобы гарантировать корректность каждой версии. Для этого вы можете использовать функцию «Найти в» Delphi IDE. Файлы...» (строки поиска в нескольких файлах) позволяют найти все файлы и местоположения, определяющие символы версии, а затем последовательно изменить их, чтобы гарантировать, что все местоположения исправлены.