1つの{$ IFDEF}ディレクティブで複数の条件を定義することは可能ですか?
次のような構文が欲しいのですが。
{$IFDEF Condition1 OR Condition2} DoSomething; {$ENDIF}
{$IFDEF Condition1 AND Condition2} DoSomethingElse; {$ENDIF}
ありがとう
$IF
代わりに:
{$IF Defined(Condition1) or Defined(Condition2)}
DoSomething;
{$IFEND}
($ IFメタディレクティブのサポートなしで)古いDelphiをサポートする必要がある場合は、1つの単純な回避策と醜い回避策を使用できます。
//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}
テストを複数回繰り返す場合は、最初のケースを次のように書き直す必要があります。
{$UNDEF Cond1AndCond2}
{$IFDEF Cond1}{$IFDEF Cond2}{$DEFINE Cond1AndCond2{$ENDIF}{$ENDIF}
{$IFDEF Cond1AndCond2}DoSomething{$ENDIF}
embarcadero.com から試してみてください
begin
...
{$IF Defined(MY_DEFINE) and (LibVersion > 2.0) }
Writeln(1);
{$ELSE}
Writeln(2);
...
{$IFEND}
end;