A.3 使用条件编译指令 条件编译指令是非常重要的编译指令,他控制着在不同条件下(例如,不同的操作系统)产生不同的代码。条件编译指令是包含在 注释括号之内的,如下表所示。 条件编译指令 含义 $DEFINE 用于定义一个条件符号,一旦定义,条件符号就为真 $ELSE 与$IFDEF配合使用,如果$IFDEF条件为假,则只对源文件$ELSE后一小部分进行编译 $ENDIF 结束一个以$IF开始的条件段 $IFDEF 对条件符号进行判断,为真则编译源文件 $IFNDEF 对条件符号进行判断,为假则编译源文件 $IFOPT 根据编译开关状态,对源文件编译 $UNDEF 撤消以前的条件符号定义 这些条件编译指令是非常有用的。例如,可以通过开关的状态来控制编译: {IFOPT R+} showmessage('Compiled with range-checking'); {$ENDIF} 也可以通过定义条件符号来控制编译: {$Define s} …… {$ifdef s} showmessage('yes'); {$else} showmessage('no'); {$endif} 他的编译结果是显示'yes',但是如果省去{$Define s}则显示'no'。 在Delphi中已经预定义了一些关键的条件符号,如下表所示。 条件符号 含义 VERxx 编译器版本,XX表示版本,例如:Delphi 1.0 的编译器版本为80、Delphi 5.0 的编译器版本为130 WIN32 是否WIN32的运行环境(Windows 95.98/NT/2000) CPU386 是否Intel386以上的处理器 CONSOLE 是否控制台程序 Delphi的编译器指令除了以上的指令外还有一些,不过最为常用的指令已经全部介绍完了。对于普通的程序,Delphi是不需要编程者去添加编 译器指令的,Delphi已经自动完成,但是要得到高品质的应用程序或者有特殊的要求的程序就必须熟悉Delphi的编译指令。Delphi不仅有最快 的编译器而且编译器的功能也非常强大。 ********************************************************************************************** 简单例子: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } FCaption: string; public { Public declarations } end; var Form1: TForm1; implementation //用到文件 VersionDefinition.inc {$I VersionDefinition.inc} 或 {$DEFINE AAA} // 定义行 {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin FCaption := 'Other'; {$IFDEF AAA} FCaption := 'AAA'; {$ENDIF} {$IFDEF BBB} FCaption := 'BBB'; {$ENDIF} end; procedure TForm1.Button1Click(Sender: TObject); begin Caption := FCaption; end; end. ************************** 文件VersionDefinition.inc内容 ////////////////////////// {$DEFINE AAA} {..$DEFINE BBB} ------------------------------------------- 1.编译后运行,按下Button,则看到窗体标题栏显示“AAA”。程序编译了FCaption := ’AAA’的语句。 2.改变定义行的程序段: 当改为{$DEFINE BBB}时,再次编译运行,则看到窗体标题栏显示“BBB”。程序编译了FCaption := ’BBB’的语句。当取消定义行或改为{$DEFINE NOTHING}或其他名称时,再次编译运行,则看到窗体标题栏显示“Other”。程序只编译了FCaption := ’Other’的语句。
|
请发表评论