在一个{$IFDEF}指令中定义多个条件是否可能?
我希望有如下的语法:
{$IFDEF Condition1 OR Condition2} DoSomething; {$ENDIF}
{$IFDEF Condition1 AND Condition2} DoSomethingElse; {$ENDIF}
感谢
在一个{$IFDEF}指令中定义多个条件是否可能?
我希望有如下的语法:
{$IFDEF Condition1 OR Condition2} DoSomething; {$ENDIF}
{$IFDEF Condition1 AND Condition2} DoSomethingElse; {$ENDIF}
感谢
您需要使用$IF
指令代替:$IF文档
{$IF Defined(Condition1) or Defined(Condition2)}
DoSomething;
{$IFEND}
如果您需要支持旧版本的Delphi(不支持$IF元指令),可以使用一个简单和一个丑陋的解决方法:
//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}
begin
...
{$IF Defined(MY_DEFINE) and (LibVersion > 2.0) }
Writeln(1);
{$ELSE}
Writeln(2);
...
{$IFEND}
end;
{$ENDIF}
instead of{$IFEND}
- Bosshoss