Ответ 1
Используйте это:
{$IFDEF DEBUG}
...
{$ENDIF}
Существует ли эквивалент Delphi директивы компилятора С# #if (DEBUG)?
Используйте это:
{$IFDEF DEBUG}
...
{$ENDIF}
Помимо того, что сказал lassevk, вы также можете использовать несколько других методов компиляции-оценки (поскольку, полагаю, Delphi 6):
{$IF NOT DECLARED(SOME_SYMBOL)}
// Mind you : The NOT above is optional
{$ELSE}
{$IFEND}
Чтобы проверить, имеет ли компилятор эту функцию, используйте:
{$IFDEF CONDITIONALEXPRESSIONS}
Для этого существует несколько применений.
Например, вы можете проверить версию RTL; Из справки Delphi:
Вы можете использовать RTLVersion в $IF выражения для проверки среды выполнения уровень версии библиотеки самостоятельно уровня версии компилятора.
Пример: {$ IF RTLVersion >= 16.2}... {$ IFEND}
Кроме того, сама версия компилятора может быть проверена снова из кода:
CompilerVersion присваивается значение компилятор, когда системный блок скомпилирован. Это указывает на пересмотр уровень возможностей компилятора/ синтаксис языка, который может независимо от RTLVersion. CompilerVersion можно протестировать в $IF выражения и должны использоваться вместо тестирования на VERxxx условное определение. Всегда проверяйте больше или меньше, чем известное уровень пересмотра. Это плохая идея проверьте уровень проверки.
Еще одна вещь, которую я делаю регулярно, - это определить символ, если он еще не определен (приятный для передовой совместимости), например:
{$IF NOT DECLARED(UTF8String)}
type
UTF8String = type AnsiString;
{$IFEND}
Надеюсь, это поможет!
DebugHook устанавливается, если приложение работает под отладчиком IDE. Не то же самое, что и директива компилятора, но все же довольно полезна. Например:
ReportMemoryLeaksOnShutdown := DebugHook <> 0; // show memory leaks when debugging
Эти директивы управления доступны:
{$IFDEF}
{$ELSE}
{$ENDIF}
{$IFNDEF} //if *not* defined
и они могут использоваться, как показано здесь:
procedure TfrmMain.Button1Click(Sender: TObject);
begin
{$IFDEF MY_CONDITIONAL}
ShowMessage('my conditional IS defined!');
{$ELSE}
ShowMessage('my conditional is NOT defined!');
{$ENDIF}
{$IFNDEF MY_CONDITIONAL}
ShowMessage('My conditional is explicitly NOT defined');
{$ENDIF}
end;