亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Delphi中預編譯指令如何使用

2019-11-18 17:58:53
字體:
來源:轉載
供稿:網友

我的主頁: http://www.tommstudio.com/

在Delphi中,也有與C相似的預編譯指令,雖然該類指令只在當前的單個文件有效(也有可能是筆者未全面了解該類指令的真正用法),但是這一類指令對于進行多版本的制作工作(如從標準版中出學習版),確實有著相當不錯的用途。  
 
 
一.指令介紹:  
 
1.DEFINE指令:  
格式:{$DEFINE  名稱}  
說明  :用于定義一個在當前單元有效的符號(Symbol)。定義了之后可以使用IF DEF和IFNDEF指令來判斷該符號是否存在。  
 
 
2.UNDEF指令:  
格式:{$UNDEF  名稱}  
說明:用于取消一個在當前單元已經定義的符號(Symbol)。該指令和DEFINE配合使用。  
 
 
3.IFDEF指令:  
格式:{$IFDEF  名稱}  
說明:如果該指令后的名稱已經定義,則編譯該指令后直到{$ELSE}或{$ENDIF}之間的代碼段。  

 
4.IFNDEF指令:  
格式:{$IFNDEF  名稱}  
說明:如果該指令后的名稱沒有定義,則編譯該指令后直到{$ELSE}或{$ENDIF}之間的代碼段。  
 
 
5.IFOPT指令:  
格式:{$IFOPT  開關}  
說明:如果該指令后的開關已經設立,則編譯該指令后直到{$ELSE}或{$ENDIF}之間的代碼段。  
舉例:


{$IFOPT  R+}  
Writeln('編譯時打開范圍檢查開關');  
{$ENDIF}  

 
 
 
6.ELSE指令:  
格式:{$ELSE}  
說明:通過判斷前綴Ifxxx的條件式來確定該指令到{$ENDIF}之間的代碼段是否應該被編譯或者忽略掉。  
 

7.ENDIF指令:  
格式:{$ENDIF}  
說明:和Ifxxx配合,指明條件預編譯段源代碼段的結束位置。  
 
 
二.范例:  

編寫例子,通過預先定義不同的編譯符號,進行不用代碼段的編譯工作。  
 
1.新建一個Delphi項目,在Unit1單元的窗體上添加一個Button按鈕。  
2.編寫程序如下:  


unit  Unit1;  

interface  

uses  

Windows,  Messages,  SysUtils,  Classes,  Graphics,  Controls,  Forms,  Dialogs,  StdCtrls;  

type  
TForm1  =  class(TForm)  
Button1:  TButton;  
PRocedure  FormCreate(Sender:  TObject);  
procedure  Button1Click(Sender:  TObject);  
private  
{  Private  declarations  }  
public  
{  Public  declarations  }  
a  :  String;  
end;  

var  
Form1:  TForm1;  

implementation  

{$R  *.DFM}  

{$DEFINE  AAA}  //  定義行。  
 
procedure  TForm1.FormCreate(Sender:  TObject);  
begin  
  a  :=  'Other';  
  {$IFDEF  AAA}  
  a  :=  'AAA';  
  {$ENDIF}  
  {$IFDEF  BBB}  
  a  :=  'BBB';  
  {$ENDIF}  
end;  

procedure  TForm1.Button1Click(Sender:  TObject);  
begin  
  Caption  :=  a;  
end;  

end.  
{注:粗體字部分為輸入的代碼}  

 
3.編譯后運行,按下Button,則看到窗體標題欄顯示“AAA”。程序編譯了a  :=  ’AAA’的語句。  
4.改變定義行的程序段:  
 
當改為  


{$DEFINE  BBB}  

 
時,再次編譯運行,則看到窗體標題欄顯示“BBB”。程序編譯了a  :=  ’BBB’的語句。  
 
當取消定義行或改為  


{$DEFINE  NOTHING}  

 
或其他名稱時,再次編譯運行,則看到窗體標題欄顯示“Other”。程序只編譯了

a  :=  'Other'的語句。  


 
 
三.如何快速的制作和更改版本:  
 
使用預編譯指令,在制作同一個程序的多個版本時,只需找出各版本中有區別的單元,依次定義統一的版本符號(Symbol),然后在程序段中加入條件預編譯指令,就可以在實際編譯中取舍編譯不同的程序部分,這樣對于程序的規范性(定義統一的版本符號)和保密性(不同的版本編譯不同的程序部分)有很好的作用。  
 
然而,由于該類預編譯指令只能作用于當前單元,所以不便之處在于不能在一個公共單元定義一次版本符號,而必須在各單元中定義統一版本符號才行,故此,在更換版本時,需要確定所有的版本符號都已改變,這樣才能保證各版本的正確性,對此,可以使用Delphi  IDE的“Find  in  Files…”(多個文件中查找字符串)的功能,找出所有定義版本符號的文件和位置,然后依次更改,保證所有位置已經改正。  
 
一般是這樣的:  


{$HINTS  OFF}            <----OFF表示關閉  
procedure  Test;  
var  
I:  Integer;  
begin  
end;  
{$HINTS  ON}              <----ON表示打開  

 
也有用:


{$I+}  <----表示打開  
{$I-}  <----表示關閉  


這個編譯指令是對I/O的檢查。  

更具體的請查閱相關資料。  


{$HINTS  ON}  或是  {$HINTS  OFF}                <----是否給出提示  
{$WARNINGS  ON}  或是  {$WARNINGS  OFF}    <----是否給出警告  

 
報錯說明你的代碼不能正確編譯通過,請檢查你得代碼。如果隨便輸入代碼DELPHI就能編譯通過,那還了得。  


上一篇:一個只有17K的Delphi字符串加密程序源碼

下一篇:Delphi的TWebBrowser編程綜述

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黑人狂躁日本妞一区二区三区| 日本国产欧美一区二区三区| 青青草原一区二区| 久久夜色精品亚洲噜噜国产mv| 日韩最新av在线| 亚洲男人天堂2023| 91精品国产91久久久久福利| 精品视频久久久久久| 亚洲深夜福利网站| 色偷偷噜噜噜亚洲男人| 久久久爽爽爽美女图片| 色婷婷av一区二区三区久久| 国产精品福利在线| 欧美猛交免费看| 中文字幕久久精品| 日韩在线视频线视频免费网站| 国产精品国模在线| 国内精品美女av在线播放| 97国产在线观看| 亚洲成人999| 亚洲电影第1页| 亚洲欧美日韩国产成人| 欧美极品欧美精品欧美视频| 久久香蕉国产线看观看网| 亚洲精品白浆高清久久久久久| 亚洲午夜小视频| 91免费国产视频| 欧美丰满少妇xxxxx做受| 亚洲欧美制服另类日韩| 亚洲精品一区二区三区婷婷月| 欧美成人免费在线观看| 欧美高清视频免费观看| 欧美中文在线免费| 97在线视频精品| 欧美日韩国产123| 亚洲激情第一页| 亚洲一区二区三区香蕉| 亚洲精品电影网| 国产欧美在线播放| 亚洲开心激情网| 亚洲成人网在线| 日本韩国欧美精品大片卡二| 欧美激情综合色综合啪啪五月| 91久久久亚洲精品| 亚洲电影中文字幕| 久久久av亚洲男天堂| 国产精品99久久久久久www| 97在线看福利| 欧美亚洲午夜视频在线观看| 国产精品久久久久久久av电影| 亚洲视频在线免费看| 国产精品高清在线| 国产成人精品日本亚洲专区61| 欧美在线激情视频| 欧美乱大交做爰xxxⅹ性3| 欧美电影在线观看完整版| 欧美激情国产精品| 伊人精品在线观看| 国产精品电影观看| 日本精品久久中文字幕佐佐木| 亚洲欧美中文日韩在线| 国产美女扒开尿口久久久| 三级精品视频久久久久| 国产亚洲欧美日韩美女| 日韩中文字幕网站| 欧美性色19p| 国产xxx69麻豆国语对白| 亚洲精选一区二区| 日韩美女免费线视频| 亚洲国产高潮在线观看| 日韩av电影国产| 久热精品视频在线观看一区| 国产精品久久久久久av| 国产第一区电影| 欧美小视频在线观看| 久久久国产一区| 国产精品福利片| 青青草精品毛片| 国产福利成人在线| 亚洲精品99999| 日韩不卡中文字幕| 欧美激情免费视频| 日韩精品中文字幕有码专区| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩在线高清视频| 亚洲第一中文字幕| 亚洲a级在线观看| 国产精品一久久香蕉国产线看观看| 91国内在线视频| 欧美日韩国产黄| 一区二区三区四区在线观看视频| 中文字幕成人精品久久不卡| 久久人人爽人人爽爽久久| 欧美激情视频网站| 久久久极品av| 亚洲第一精品夜夜躁人人躁| 亚洲精品国产福利| 日本一区二三区好的精华液| 精品久久久久久久大神国产| 亚洲91精品在线| 一区二区三区 在线观看视| 亚洲欧美日韩一区二区在线| 国产精品亚洲美女av网站| 日韩精品免费视频| 欧洲永久精品大片ww免费漫画| 亚洲九九九在线观看| 欧美电影免费播放| 精品久久久一区二区| 色多多国产成人永久免费网站| 亚洲国产精品嫩草影院久久| 国内精品小视频在线观看| 亚洲男人天堂2024| 欧美劲爆第一页| 亚洲激情视频网站| 色综合男人天堂| 91亚洲精品在线观看| 国产成人精品免费视频| 影音先锋欧美精品| 成人黄色免费片| 国产精品美女免费视频| 欧美一区二区三区……| 国产精品露脸av在线| 日韩在线中文字| 欧美人在线视频| 久久久天堂国产精品女人| 欧美视频免费在线观看| 欧美成人免费播放| 国产在线观看一区二区三区| 欧美性猛交xxxxx水多| 亚洲自拍在线观看| 亚洲精品videossex少妇| 77777少妇光屁股久久一区| 日韩成人在线播放| 国产一区二区三区高清在线观看| 欧美在线视频一区二区| 国产精品99久久久久久人| 色小说视频一区| 欧美精品aaa| 中日韩美女免费视频网址在线观看| 色婷婷av一区二区三区久久| 国产亚洲精品一区二区| 日本免费一区二区三区视频观看| 精品久久香蕉国产线看观看gif| 国产精品久久久久久久久| 国产精品中文久久久久久久| 91av国产在线| 国产成人午夜视频网址| 亚洲国产精品999| 日本精品一区二区三区在线播放视频| 亚洲欧美激情在线视频| 国产成人福利夜色影视| 日本精品视频网站| 欧美主播福利视频| 欧美区在线播放| 日本中文字幕不卡免费| 全亚洲最色的网站在线观看| 国产精品久久久久久婷婷天堂| 国产成人精品视频| 一本色道久久88亚洲综合88| 亚洲综合成人婷婷小说| 91午夜在线播放| 国产精品视频一区国模私拍| 精品香蕉在线观看视频一| 国产ts人妖一区二区三区|