是否可以在一個{$ 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 Defined(Condition1) or Defined(Condition2)}
DoSomething;
{$IFEND}
begin
...
{$IF Defined(MY_DEFINE) and (LibVersion > 2.0) }
Writeln(1);
{$ELSE}
Writeln(2);
...
{$IFEND}
end;
如果你有支持老DELPHIS(不爲$ IF metadirective的支持),您可以使用一個簡單的和一個醜陋的解決方法:
//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}
老DELPHIS在這方面是D5及以上IIRC – 2012-01-04 11:46:30
誠然,在D6加入$ IF:http://www.blong.com/Seminars/Delphi6.htm#Compiler – gabr 2012-01-04 16:26:22
謝謝,這正是我需要的。我想你不僅是貴公司的首席開發人員,也是一名建設經理,不是嗎? – 2012-01-04 10:17:36
@MartinReiner,也是總裁,總監兼高級看門人;-) – OnTheFly 2012-01-04 11:27:35
@ user539484其實你是相當正確的! – 2012-01-04 11:45:56