delphi logical-operators conditional-compilation

delphi - ¿Es posible definir{$ IFDEF} para más de una directiva a la vez?



logical-operators conditional-compilation (3)

¿Es posible definir más de un condicional en una directiva {$ IFDEF}?
Me gustaría tener una sintaxis como esta:

{$IFDEF Condition1 OR Condition2} DoSomething; {$ENDIF} {$IFDEF Condition1 AND Condition2} DoSomethingElse; {$ENDIF}

Gracias


En caso de que tenga que admitir Delphis antiguo (sin el soporte para la metadirección $ IF), puede usar una solución alternativa simple y otra fea:

//AND {$IFDEF Cond1}{$IFDEF Cond2}DoSomething{$ENDIF}{$ENDIF} //OR {$UNDEF Cond1OrCond2} {$IFDEF Cond1}{$DEFINE Cond1OrCond2}{$ENDIF} {$IFDEF Cond2}{$DEFINE Cond1OrCond2}{$ENDIF} {$IFDEF Cond1OrCond2}DoSomething{$ENDIF}

Si repite la prueba más de una vez, el primer caso se debe reescribir de la siguiente manera.

{$UNDEF Cond1AndCond2} {$IFDEF Cond1}{$IFDEF Cond2}{$DEFINE Cond1AndCond2{$ENDIF}{$ENDIF} {$IFDEF Cond1AndCond2}DoSomething{$ENDIF}


En su lugar, necesitaría usar $IF :

{$IF Defined(Condition1) or Defined(Condition2)} DoSomething; {$IFEND}


oye, intenta esto desde el $IF

begin ... {$IF Defined(MY_DEFINE) and (LibVersion > 2.0) } Writeln(1); {$ELSE} Writeln(2); ... {$IFEND} end;