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;