Delphi 的編譯指令(2): 條件語句的更多用法

1. $IFDEF 等同於 $IF DEFINED(...) :測試


它們的結束分別是: $ENDIF、$IFEND; 例子中的 VER200 是 Delphi 2009 的標識.spa


begin  {$IFDEF VER200}    ShowMessage('這是 Delphi 2009');
  {$ENDIF}  {$IF DEFINED(VER200)}    ShowMessage('這是 Delphi 2009');
  {$IFEND}end;


2. $IFNDEF 等同於 $IF NOT DEFINED(...) :code


它們的結束分別是: $ENDIF、$IFEND; 例子中的 VER150 是 Delphi 7 的標識.源碼


begin  {$IFNDEF VER150}    ShowMessage('這不是 Delphi 7');
  {$ENDIF}  {$IF NOT DEFINED(VER150)}    ShowMessage('這不是 Delphi 7');
  {$IFEND}end;


3. 可使用 or 和 and:io


begin  {$DEFINE AAA}  {$DEFINE BBB}  {$IF DEFINED(AAA) OR DEFINED(BBB)}    ShowMessage('條件標識符 AAA 和 BBB 其中一個定義了');
  {$IFEND}  {$IF DEFINED(AAA) AND DEFINED(BBB)}    ShowMessage('條件標識符 AAA 和 BBB 都定義了');
  {$IFEND}end;


4. 可使用 System 單元裏的常量:編譯


我測試了 System 單元裏的不少常量都沒問題.class


begin  ShowMessage(FloatToStr(CompilerVersion)); {在 Delphi 2009 中, CompilerVersion = 20.0}  {$IF CompilerVersion >= 17.0}    ShowMessage('這是 Delphi 2005 或以上的版本');
  {$IFEND}end;


5. 使用 $IFOPT 判斷編譯開關:co


Delphi 挺好玩, 26個字母分別安排成不一樣的開關指令(用 Ctrl+o+o 查看, 固然開關指令不止這些);
$IFOPT 能夠判斷這些指令是否打開.
這個指令不是很經常使用, 我看了一下 2009 的 VCL 源碼, 總共才用了 6 次.版本


begin  {$IFOPT B+}    ShowMessage('指令 B 已打開');
  {$ELSE}    ShowMessage('指令 B 已關閉');
  {$ENDIF}  {$B+}  {$IFOPT B+}    ShowMessage('Ok!');
  {$ENDIF}end;
相關文章
相關標籤/搜索