zoukankan      html  css  js  c++  java
  • Delphi 预编译指令 的用法

    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’的语句。

  • 相关阅读:
    js返回到顶部
    css培训一
    css常用hack技巧
    css培训二
    css样式渲染规则
    html语义(一)
    css样式表管理
    html+css培训方案
    继承
    封装
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/3183856.html
Copyright © 2011-2022 走看看