Pergunta

Existe um equivalente Delphi do C # # if (debug) diretiva de compilação?

Foi útil?

Solução

Use esta:

{$IFDEF DEBUG}
...
{$ENDIF}

Outras dicas

Além do que lassevk disse, você também pode usar alguns outros métodos de compilador-avaliação (desde Delphi 6, creio eu):

{$IF NOT DECLARED(SOME_SYMBOL)} 
  // Mind you : The NOT above is optional
{$ELSE}
{$IFEND}

Para verificar se o compilador tem esse recurso, use:

 {$IFDEF CONDITIONALEXPRESSIONS}

Há vários usos para isso.

Por exemplo, você pode verificar a versão do RTL; Desde a ajuda Delphi:

Você pode usar RTLVersion em $ IF expressões para testar o tempo de execução nível de versão da biblioteca de forma independente do nível de versão do compilador.
Exemplo: {$ IF RTLVersion> = 16,2} ... {$ IfEnd}

Além disso, a própria versão do compilador pode ser verificado, novamente a partir do código:

CompilerVersion é atribuído um valor por o compilador, quando a unidade de sistema é compilado. Ele indica a revisão nível das características do compilador / sintaxe da linguagem, que pode avançar independentemente do RTLVersion. CompilerVersion pode ser testado em $ IF expressões e deve ser usado em vez de testar para a VERxxx condicional definir. Sempre teste para maior do que ou menor do que um conhecido Nível de revisão. É uma má ideia teste para um nível de revisão específica.

Outra coisa que faço regularmente, é definir um símbolo quando não está definido ainda (bom para a frente-compatibilidade), assim:

 {$IF NOT DECLARED(UTF8String)}
 type
   UTF8String = type AnsiString;
 {$IFEND} 

Espero que isso ajude!

DebugHook está definido se um aplicativo está sendo executado sob o depurador IDE. Não é o mesmo que uma diretiva de compilação, mas ainda bastante útil. Por exemplo:

ReportMemoryLeaksOnShutdown := DebugHook <> 0; // show memory leaks when debugging

Estas directivas de controle estão disponíveis:

{$IFDEF}
{$ELSE}
{$ENDIF}
{$IFNDEF} //if *not* defined

e eles podem ser usados ??como mostrado aqui:

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;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top