版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Delphi概述
內(nèi)容提要
Delphi簡(jiǎn)介
Delphi7集成開(kāi)發(fā)環(huán)境
Delphi的文件結(jié)構(gòu)簡(jiǎn)單應(yīng)用程序?qū)嵗?.1Delphi簡(jiǎn)介
Delphi是Borland公司推出的面相對(duì)象的可視化編程環(huán)境,特別適合于快速規(guī)范地開(kāi)發(fā)Windows應(yīng)用程序。從Borland公司推出Delphi1.0至今,Delphi已經(jīng)發(fā)展了7代產(chǎn)品,每一代都是伴隨Windows操作平臺(tái)的升級(jí)而升級(jí)。使用Delphi,用戶(hù)可以輕松地進(jìn)行各種復(fù)雜應(yīng)用程序的開(kāi)發(fā)。
1.2Delphi的新特性Delphi具有簡(jiǎn)單、高效、功能強(qiáng)大的特點(diǎn),而Delphi7在以下幾個(gè)方面又進(jìn)行了加強(qiáng):
企業(yè)應(yīng)用的MDA開(kāi)發(fā)可視化的快速Web開(kāi)發(fā)內(nèi)建的對(duì)Linux的跨平臺(tái)支持企業(yè)級(jí)的報(bào)表能力免費(fèi)的DataSnap多層應(yīng)用開(kāi)發(fā)WindowsXP應(yīng)用
1.4Delphi7的集成開(kāi)發(fā)環(huán)境
Delphi7的集成開(kāi)發(fā)環(huán)境(IDE)和
Delphi以前的版本基本一致。它把菜單、多個(gè)工具欄以及一組窗口和應(yīng)用程序設(shè)計(jì)在一起,將代碼以事件的形式與界面的每一元素建立聯(lián)系,使用戶(hù)很方便的在這個(gè)高度集成的開(kāi)發(fā)環(huán)境里進(jìn)行應(yīng)用程序的開(kāi)發(fā)和調(diào)試。
Delphi7的集成開(kāi)發(fā)環(huán)境(IDE)是進(jìn)行設(shè)計(jì)、運(yùn)行和測(cè)試程序的工作系統(tǒng)。啟動(dòng)Delphi7,運(yùn)行后可以見(jiàn)到它的開(kāi)發(fā)環(huán)境如圖1-1所示。1.4.1Delphi7集成開(kāi)發(fā)環(huán)境的組成
主要包括以下幾個(gè)窗口:主窗口;對(duì)象樹(shù)形圖、對(duì)象監(jiān)視器窗口;窗體設(shè)計(jì)器窗口、代碼編輯器窗口。(圖1-1Delphi7開(kāi)發(fā)環(huán)境)1.4.2Delphi7主窗體
Delphi7的主窗體位于屏幕的上端,主要包括四個(gè)部分:標(biāo)題欄、菜單欄、工具欄和組件欄。Delphi7的主窗口如圖1-2所示。(圖1-2)
Delphi7的主窗口1.4.3對(duì)象樹(shù)形圖及對(duì)象監(jiān)視器窗口
對(duì)象樹(shù)形圖窗口(ObjectTreeView)用樹(shù)形表方式列出了項(xiàng)目中所有的對(duì)象,即窗口、組件、菜單等,并清楚地表明了它們之間的關(guān)系。對(duì)象樹(shù)形窗口如圖1-3所示。
在對(duì)象樹(shù)形圖窗口下方是對(duì)象監(jiān)視器窗口(ObjectInspector),對(duì)象監(jiān)視器窗口含有兩個(gè)頁(yè)卡:屬性頁(yè)卡(Properties),顯示窗體中當(dāng)前被選擇部件的屬性信息,并允許改變對(duì)象的屬性;事件頁(yè)卡(Events),列出了當(dāng)前部件可以響應(yīng)的事件。對(duì)象監(jiān)視器窗口如圖1-4所示。
圖1-3對(duì)象樹(shù)形圖窗
圖1-4對(duì)象監(jiān)視器窗1.4.5窗體設(shè)計(jì)器在
Delphi7的開(kāi)發(fā)過(guò)程中,大部分的設(shè)計(jì)是在窗體設(shè)計(jì)器中,主要是通過(guò)向窗體中添加組件以及更改窗體及組件的屬性和填寫(xiě)事件來(lái)完成的。當(dāng)創(chuàng)建一個(gè)
Windows應(yīng)用程序時(shí),Delphi會(huì)缺省的建立一個(gè)窗體
Form1。窗體設(shè)計(jì)器窗口如圖1-5所示。
對(duì)象樹(shù)形圖窗口與對(duì)象觀察器窗口、窗體設(shè)計(jì)器窗口同步,即在此三個(gè)工具的任何一個(gè)中改變焦點(diǎn)時(shí),另外兩個(gè)工具的焦點(diǎn)也會(huì)發(fā)生變化。圖1-5窗體設(shè)計(jì)器窗口1.4.6代碼編輯器代碼編輯器是一個(gè)程序代碼的輸入和編輯工具,也稱(chēng)單元窗口。通常情況下隱藏在窗體設(shè)計(jì)器的下面,可通過(guò)菜單或工具欄上的按鈕對(duì)它們進(jìn)行切換。Delphi7的代碼編輯器具有彩色高亮度語(yǔ)法顯示、自動(dòng)進(jìn)行語(yǔ)法校驗(yàn)、代碼參數(shù)提示輸入和代碼完善等功能。
啟動(dòng)Delphi或執(zhí)行NewForm菜單項(xiàng)時(shí),系統(tǒng)即生成一個(gè)新的窗體,并在代碼編輯器中產(chǎn)生一個(gè)新頁(yè)卡,在新頁(yè)卡中可以編輯相應(yīng)的單元代碼。按F12可以在窗體設(shè)計(jì)器窗口和代碼編輯器窗口之間轉(zhuǎn)換。
圖1-6代碼編輯器窗口1.5Delphi的文件結(jié)構(gòu)利用
Delphi開(kāi)發(fā)
Windows應(yīng)用程序都是以工程為中心的,即每個(gè)應(yīng)用程序都對(duì)應(yīng)一個(gè)工程。工程中可包含一個(gè)或多個(gè)文件,這些文件主要是工程文件、單元文件、窗體文件和資源文件等。
1.5.1工程文件工程文件是一個(gè)
Delphi應(yīng)用程序的總體管理和描述的文件,它的文件后綴是
.dpr,是整個(gè)應(yīng)用程序的主程序。工程文件由Delphi7自動(dòng)生成,一般情況下不修改這個(gè)文件。下面是一個(gè)工程文件的程序清單。
programProject1; //保留字program說(shuō)明這是一個(gè)工程文件
//文件名為Project1.dpruses//保留字uses對(duì)工程所引用的單元進(jìn)行說(shuō)明
Forms, //引用Forms單元
Unit1in'Unit1.pas'{Form1};
//引用Unit1單元,在當(dāng)前目錄的Unit1.pas文件中,相應(yīng)的窗體為Form1{$R*.res}//系統(tǒng)編譯命令,將擴(kuò)展名為.res的二進(jìn)制資源文件連接到.exe文件中去begin //工程執(zhí)行部分的開(kāi)始聲明
Application.Initialize;//應(yīng)用程序的初始化
Application.CreateForm(TForm1,Form1);//創(chuàng)建窗體Form1 Application.Run; //運(yùn)行程序end. //工程執(zhí)行部分的結(jié)束說(shuō)明1.5.2單元文件
單元文件是
Delphi的核心文件,它的文件后綴是
.pas。在Delphi7中每個(gè)窗體都有一個(gè)單元文件與之相對(duì)應(yīng),窗體的單元文件包含了程序部分,用以控制窗體的行為。在一個(gè)工程中,還可以建立與窗體無(wú)關(guān)的單元文件,用來(lái)編寫(xiě)工程中公用的函數(shù)、過(guò)程或定義新的數(shù)據(jù)。許多工程還調(diào)用了Delphi7附加庫(kù)或其單元文件中的過(guò)程或函數(shù)。uses子句中包含的公共單元文件包含了支持可視窗體及其控制的對(duì)象聲明。這些單元也包含了用于激活窗體的事件處理過(guò)程程序。(詳見(jiàn)本教程P20~P21)1.5.3窗體文件
窗體文件記錄設(shè)計(jì)時(shí)窗體和組件的屬性,它的文件后綴是
.dfm。一個(gè)或多個(gè)窗體文件,它們含有相應(yīng)的單元文件。dfm文件在
Delphi7下是一種腳本化的文本文件。在Delphi7中,一個(gè)應(yīng)用程序至少需要一個(gè)窗體??梢栽诖绑w上單擊鼠標(biāo)右鍵,選擇
【ViewasText】命令,窗體將在代碼編輯器中顯示為文本格式。
(代碼省略,詳見(jiàn)本教程P21~P22)1.5.4資源文件
資源文件中可以包含各種資源,用它可豐富應(yīng)用程序,它的文件后綴是
.res。編譯器可以把資源文件鏈接到可執(zhí)行文件里。資源文件的生成和編輯需要有專(zhuān)門(mén)的工具,如
Delphi7附帶的
ImageEditor,利用它就可以創(chuàng)建、打開(kāi)、編輯和保存圖片資源。1.5.5其他文件后綴格式為如下形式:*.~pas:Delphi單元的備份文件;*.dof:Delphi中的有關(guān)配置和選項(xiàng)文件;*.dcu:Delphi的中間編譯單元文件;*.dpk:Delphi的包文件;*.dll:動(dòng)態(tài)鏈接庫(kù)(Delphi可創(chuàng)建的一種終端文件);*.ocx:ActiveX控件(Delphi可創(chuàng)建的一種終端文件);
*.exe:可執(zhí)行文件(Delphi可創(chuàng)建的一種終端文件)。
1.6Delphi簡(jiǎn)單應(yīng)用程序?qū)嵗?/p>
本節(jié)要?jiǎng)?chuàng)建一個(gè)簡(jiǎn)單的應(yīng)用程序。啟動(dòng)Delphi7程序,出現(xiàn)一個(gè)窗口,窗體標(biāo)題欄中顯示“演示程序”字樣,在窗體上顯示一行文字“歡迎使用Delphi7開(kāi)發(fā)工具!”;單擊窗體中“測(cè)試”按鈕,彈出信息框告知“我成功了!”;單擊窗體中的“退出”按鈕,能夠退出應(yīng)用程序。通過(guò)設(shè)計(jì)一個(gè)簡(jiǎn)單的應(yīng)用程序。掌握以下內(nèi)容:
應(yīng)用程序開(kāi)發(fā)過(guò)程;
常用開(kāi)發(fā)工具及功能;
應(yīng)用程序組成;
應(yīng)用程序編譯及執(zhí)行。
在Delphi7中開(kāi)發(fā)的每個(gè)應(yīng)用程序都被稱(chēng)為工程。Delphi7編程首先從創(chuàng)建一個(gè)新工程開(kāi)始。創(chuàng)建新工程有以下兩種方法:
1.6.1建立用戶(hù)界面的對(duì)象(1)
新創(chuàng)建的工程中包含一個(gè)默認(rèn)窗體(Form1)和它對(duì)應(yīng)的單元(Unit1),根據(jù)工程的需要可添加窗體或單元。工程文件的擴(kuò)展名為.dpr。打開(kāi)一個(gè)已建立的工程的方法是:?jiǎn)螕鬎ile菜單,指向OpenProject,然后選擇工程文件即可。⑴啟動(dòng)Delphi7進(jìn)入開(kāi)發(fā)環(huán)境,此時(shí)系統(tǒng)自動(dòng)生成一個(gè)工程,默認(rèn)名為Project1;⑵選擇File菜單,指向New,然后單擊Application系統(tǒng)將創(chuàng)建一個(gè)新的工程。1.6.1建立用戶(hù)界面的對(duì)象(2)
程序設(shè)計(jì)首先是窗體設(shè)計(jì)。因此第一項(xiàng)工作就是在窗體設(shè)計(jì)器完成窗體設(shè)計(jì),在窗體中添加各種所需對(duì)象進(jìn)行界面設(shè)計(jì)。將組件板上的組件添加到窗體上有三種方法。(1)單擊組件板上所需組件的按鈕,然后在窗體適當(dāng)位置拖動(dòng)鼠標(biāo)畫(huà)出組件,即可將組件添加到窗體指定位置。(2)雙擊組件板上所需組件的按鈕,即可將組件添加到窗體中心位置。(3)按下Shift鍵不放,單擊組件板上所需組件的按鈕,所選擇組件出現(xiàn)藍(lán)色邊框,同時(shí)對(duì)象選擇按鈕彈起??梢栽诖绑w適當(dāng)位置連續(xù)畫(huà)出該類(lèi)組件,用鼠標(biāo)單擊對(duì)象選擇按鈕,可以取消該類(lèi)組件的連續(xù)添加操作。
本例中共涉及3個(gè)對(duì)象:1個(gè)TLabel組件和2個(gè)TBotton組件。Label組件用來(lái)顯示信息,不能用于輸入;Button組件用來(lái)執(zhí)行有關(guān)操作;窗體是上述對(duì)象的載體
1.6.1建立用戶(hù)界面的對(duì)象(3)
如果組件在窗體中的位置不合適,可以用鼠標(biāo)拖動(dòng)的方法進(jìn)行移動(dòng),直到對(duì)所有組件的位置感到滿(mǎn)意為止。剛添加到窗體中的組件,其邊框上有八個(gè)黑色小方塊,表明它是當(dāng)前被選定的組件??梢杂檬髽?biāo)拖拉邊框上黑色小方塊使組件在相應(yīng)方向上放大或縮小,也可用鼠標(biāo)指向組件內(nèi)部,按下鼠標(biāo)左鍵并拖動(dòng)鼠標(biāo)到窗體的任意位置。按組合鍵Ctrl+C可以對(duì)所選組件進(jìn)行復(fù)制,Ctrl+V可以在窗體中進(jìn)行粘貼,按Delete鍵可以刪除所選組件1.6.2對(duì)象屬性設(shè)置(3)在
Delphi中,設(shè)置窗體和組件的屬性是通過(guò)對(duì)象檢查器實(shí)現(xiàn)的,對(duì)象檢查器是設(shè)計(jì)界面過(guò)程中最頻繁使用的工具。選中窗體上要設(shè)置屬性的組件,對(duì)象檢查器會(huì)顯示該組件的所有屬性,只需對(duì)要改變的屬性后面的值進(jìn)行修改就可以了。本例中,各組件的屬性設(shè)置:
組件名稱(chēng)組件屬性屬性值說(shuō)明Label1Caption空值使Label1中不顯示任何文字AutoSizeTrue使Label1大小隨里面的內(nèi)容變化和適應(yīng)Button1Caption測(cè)試在Button1按鈕上顯示指定文字Button2Caption退出在Button2按鈕上顯示指定文字1.6.3對(duì)象事件過(guò)程及編程(1)
建立了用戶(hù)界面并為每個(gè)對(duì)象設(shè)置了屬性后,就要考慮用什么事件來(lái)激發(fā)對(duì)象執(zhí)行所需要的操作。這涉及到選擇對(duì)象的事件和編寫(xiě)事件過(guò)程代碼。為了在窗體上顯示“歡迎使用
Delphi7開(kāi)發(fā)工具!”,同時(shí)改變窗體的標(biāo)題為“演示程序”,需對(duì)Form1窗體的OnCreate事件進(jìn)行編程。代碼如下:procedureTForm1.FormCreate(Sender:TObject);beginForm1.Caption:='演示程序';Label1.Caption:='歡迎使用
Delphi7開(kāi)發(fā)工具!';end;1.6.3對(duì)象事件過(guò)程及編程(2)
為了實(shí)現(xiàn)單擊“測(cè)試”按鈕彈出對(duì)話(huà)框功能,需在Button1的OnClick事件中進(jìn)行編程。方法是:選擇Button1對(duì)象,在對(duì)象監(jiān)視器中選擇“事件”選項(xiàng)卡,在事件選項(xiàng)卡中選擇OnClick事件,雙擊事件處理欄,Delphi自動(dòng)生成該事件過(guò)程的代碼框架,同時(shí)打開(kāi)代碼編輯窗口,將光標(biāo)定位在代碼框架過(guò)程體的首行處,在過(guò)程體中加入如下代碼:ShowMessage('我成功了!');
輸入完畢可以看到按鈕Button1的鼠標(biāo)單擊事件處理程序的全部?jī)?nèi)容是:procedureTForm1.Button1Click(Sender:TObject);begin
ShowMessage('我成功了!');
end;end.1.6.3對(duì)象事件過(guò)程及編程(3)同樣,輸入完畢的Button2按鈕的鼠標(biāo)單擊事件處理程序的全部?jī)?nèi)容是:procedureTForm1.Button1Click(Sender:TObject);begin
Close;
end;end.1.6.4編譯、調(diào)試、執(zhí)行
Delphi是先編譯后執(zhí)行的程序,它不是解釋執(zhí)行的。所以一般可先使用菜單【Project】|【BuildAllProjects】進(jìn)行編譯程序,但更多的時(shí)候是直接使用菜單【Run】|【Run】來(lái)直接運(yùn)行一個(gè)程序,因?yàn)樗鼤?huì)先編譯,如果沒(méi)錯(cuò)誤再運(yùn)行。
程序運(yùn)行結(jié)果如圖1-16所示,當(dāng)出現(xiàn)一個(gè)名為Delphi7程序的窗口,單擊窗口上的顯示按鈕,顯示一行文字“第一個(gè)Delphi7程序”,單擊窗體右上方關(guān)閉按鈕時(shí)退出程序。在程序中除了語(yǔ)法錯(cuò)誤,還有可能在程序運(yùn)行中出現(xiàn)錯(cuò)誤,這就要涉及到程序的調(diào)試。Delphi7為程序員提供了方便的程序調(diào)試手段。圖1-15程序運(yùn)行結(jié)果1.6.5保存工程
當(dāng)程序調(diào)試完畢沒(méi)有任何問(wèn)題時(shí),還要注意保存程序。可通過(guò)菜單【File】|【SaveAll】保存所有文件,也可以單個(gè)保存每一個(gè)要保存的文件。
打開(kāi)Sample目錄可以發(fā)現(xiàn)有六個(gè)文件,分別是Main.dfm、Main.pas、Sample.cfg、Sample.dof、Sample.dpr、Sample.res。應(yīng)當(dāng)注意,一個(gè)應(yīng)用程序并不是只由一個(gè)文件組成,而是由許多不同類(lèi)型的文件組成的。
OOPPascal基礎(chǔ)知識(shí)
內(nèi)容提要
OOPPascal基本知識(shí)
常用數(shù)據(jù)類(lèi)型
運(yùn)算和運(yùn)算符常量和變量常用語(yǔ)句過(guò)程和函數(shù)2.1OOPPascal基本要素
Delphi是Borland公司推出的面向?qū)ο蟮目梢暬幊汰h(huán)境,特別適合于快速規(guī)范地開(kāi)發(fā)Windows應(yīng)用程序。從Borland公司推出Delphi1.0至今,Delphi已經(jīng)發(fā)展了7代產(chǎn)品,每一代都是伴隨Windows操作平臺(tái)的升級(jí)而升級(jí)。使用Delphi,用戶(hù)可以輕松地進(jìn)行各種復(fù)雜應(yīng)用程序的開(kāi)發(fā)。
2.1.1標(biāo)識(shí)符標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)一個(gè)特定元素的,如類(lèi)名、變量名、單元名、方法名等。利用標(biāo)識(shí)符可以完成對(duì)變量、常量、數(shù)據(jù)類(lèi)型、過(guò)程、函數(shù)、類(lèi)等的引用。ObjectPascal標(biāo)識(shí)符由字母、數(shù)字、下劃線(xiàn)組成,其規(guī)定為:(1)必須以字母或下劃線(xiàn)開(kāi)始;(2)不能與保留字相同;(3)避免與ObjectPascal已經(jīng)使用的標(biāo)準(zhǔn)標(biāo)識(shí)符相同。2.1.2關(guān)鍵字
關(guān)鍵字又稱(chēng)保留字(ReservedWords)是由系統(tǒng)規(guī)定的、具有特定意義的單詞。在編程時(shí)不能被重新定義或另作他用。ObjectPascal語(yǔ)言規(guī)定的保留字詳見(jiàn)本教程P28頁(yè)表2-1。
除了上述的保留字外,Private、Protected、Public、Published和Automated在定義對(duì)象類(lèi)型時(shí)也作為保留字,而在其他場(chǎng)合則作為指令符。單詞at和on也具有特殊的含義。
注意:ObjectPascal編程語(yǔ)言和許多編程語(yǔ)言不同,它對(duì)單詞的大小寫(xiě)是不敏感的。ObjectPascal不區(qū)分大小寫(xiě)。IN、in和In都被看做是同樣的意義。2.1.3指示字
注意:
可以定義一個(gè)跟指示字完全相同的標(biāo)識(shí)符,但最好不這樣做。
指示字(directives)也是具有特殊意義的單詞,但與保留字不同的是可以將指令符定義為標(biāo)識(shí)符,ObjectPascal不會(huì)指示出錯(cuò),但這容易混淆。ObjectPascal規(guī)定的指令指示字見(jiàn)表2-2。2.2數(shù)據(jù)類(lèi)型
OOPPASCAL語(yǔ)言是一種強(qiáng)類(lèi)型語(yǔ)言,這表明每一個(gè)變量在賦值之前必須明確給出它的類(lèi)型。即變量在訪(fǎng)問(wèn)之前必須聲明。OOPPASCAL數(shù)據(jù)類(lèi)型豐富,它允許使用17種類(lèi)型的數(shù)據(jù)。其結(jié)構(gòu)如P31圖2-1所示。2.2.1簡(jiǎn)單類(lèi)型
OOPPASCAL中的簡(jiǎn)單類(lèi)型包括整形、字符型、布爾型、枚舉型、子界類(lèi)型以及實(shí)數(shù)類(lèi)型。
其中,整形、字符型、布爾型、枚舉型、子界類(lèi)型統(tǒng)稱(chēng)為順序類(lèi)型(ordinaltypes)。在順序類(lèi)型中,除了第一個(gè)元素,每一個(gè)元素都有唯一的前趨;除了最后一個(gè)元素外,每一個(gè)元素都有唯一的后繼。
1.整型
OOPPASCAL中將整數(shù)類(lèi)型分為基本的(fundanmental)和一般的(generic)整數(shù)類(lèi)型?;镜恼麛?shù)類(lèi)型包括Shortint(短整型)、Smallint(小整型)、Longint(長(zhǎng)整型)、Int64(64位整型)、Byte(字節(jié)型)、Word(字型)和Longword(長(zhǎng)字型)。它們的取值范圍和格式如表2-4所示:表2-4基本整數(shù)類(lèi)型類(lèi)型范圍格式Shortint-127...1278位帶符號(hào)數(shù)Smallint-32768…3276716位帶符號(hào)數(shù)Longint-2147483648…214748364732位帶符號(hào)數(shù)Int64-2^63…2^63-164位帶符號(hào)數(shù)Byte0…2558位無(wú)符號(hào)數(shù)word0…6553516位無(wú)符號(hào)數(shù)Longword0…429496729532位無(wú)符號(hào)數(shù)2.字符型
字符類(lèi)型也有基本類(lèi)型和一般類(lèi)型之分?;绢?lèi)型包括AnsiChar和WideChar兩種類(lèi)型。其中,AnsiChar的格式為8位字節(jié),取值的序數(shù)按擴(kuò)展ANSI字符集排列;而WideChar的格式為16位字節(jié),是為兼容UniCode字符集而設(shè)置的,它的前256個(gè)UniCode字符同ANSI字符相同。一般的通用字符類(lèi)型為Char,它等價(jià)于AnsiChar。由于字符型也屬于順序類(lèi)型,可用函數(shù)Ord來(lái)取出字符的序數(shù),即Ord(‘A’)=65成立。也可用預(yù)定義的函數(shù)Chr來(lái)返回對(duì)應(yīng)的字符值,即Chr(65)=’A’成立。
3.布爾型
布爾型數(shù)據(jù)用于進(jìn)行邏輯運(yùn)算,布爾型數(shù)據(jù)的值只有兩個(gè):True(真)和False(假)。ObjectPascal包括4種形式的布爾型數(shù)據(jù),詳見(jiàn)表2-7。表2-7ObjectPascal語(yǔ)言的布爾型類(lèi)型名稱(chēng)字節(jié)數(shù)取值布爾型Boolean1只能為False(0)或True(1)字節(jié)布爾型ByteBool1False或True(非False)寬布爾型WordBool2False或True(非False)長(zhǎng)布爾型LongBool4False或True(非False)4.枚舉型
枚舉類(lèi)型定義了一組值的順序集合。它們的次序根據(jù)標(biāo)識(shí)符的枚舉順序而定。在Delphi中廣泛使用了枚舉類(lèi)型來(lái)定義組件對(duì)象的屬性。枚舉類(lèi)型是一種用戶(hù)子定義類(lèi)型,定義枚舉類(lèi)型的語(yǔ)法如下:Type類(lèi)型名稱(chēng)(TypeName)=(值1,值2,值3,……,值n);如下是定義枚舉類(lèi)型的例子:
TypeFruits=(Apples,Oranges,Bananas,Grapes);
在程序中定義好了枚舉類(lèi)型后,可以象如下聲明變量:
VarMyFruit:Fruits;
5.子界類(lèi)型子界類(lèi)型也是一種用戶(hù)字定義類(lèi)型,它規(guī)定了值域的上界和下界及取值的類(lèi)型。字節(jié)類(lèi)型必須是順序類(lèi)型中某范圍的值,在想限制一個(gè)變量的取值范圍時(shí),子界類(lèi)型是非常有用的。子界類(lèi)型的定義如下:Type類(lèi)型名稱(chēng)
=值域下界
…
值域上界;
定義子界類(lèi)型必須注意以下幾點(diǎn):
上界和下界必須屬于順序類(lèi)型,且為同一順序類(lèi)型。
上界和下界的類(lèi)型定義了子界的基類(lèi)型。
上界的序號(hào)必須大于下界的序號(hào)。正確的定義舉例如下:
TypeSomeNumbers=0…15;
SomeCaps=‘A’…‘H’;
6.實(shí)型實(shí)數(shù)類(lèi)型用于定義一個(gè)通常所說(shuō)的浮點(diǎn)數(shù)所表示的數(shù)字的集合。它是屬于數(shù)據(jù)類(lèi)型中的簡(jiǎn)單類(lèi)型,但已不屬于順序類(lèi)型。實(shí)數(shù)類(lèi)型也有基本類(lèi)型和一般類(lèi)型?;绢?lèi)型包括:Real48、Single、Double、Extended、Comp和Currency;一般類(lèi)型為:Real。詳細(xì)的格式及表示范圍如表2-6所示:
類(lèi)型名表示范圍有效位占用內(nèi)存(字節(jié))Real48±2.9*10^-39~1.7*10^3811~126Single±1.5*10^-45~3.4*10^3874Double±5.0*10^-324~1.7*10^30815~168Extended±3.6*10^-4951~1.1*10^493219~2010Comp-2^63+1~2^63-119~208Currency-922337203685477.5808~922337203685477.580719~208Real±5.0*10^-324~1.7*10^30815~1682.2.2字符串類(lèi)型字符串型是存儲(chǔ)字符串?dāng)?shù)據(jù)的類(lèi)型。OOPPASCAL中提供的預(yù)定義類(lèi)型如表2-7:
表2-7字符串類(lèi)型類(lèi)型名最大長(zhǎng)度(字符)所需內(nèi)存用途ShortString2552~256B向后兼容AnsiString2314~2GB8位ANSI字符WideString2304~2GBUniCode注:在
Delphi5.0以后的程序中可直接定義String類(lèi)型,其默認(rèn)為AnsiString類(lèi)型(或者說(shuō)是LongString類(lèi)型),如果使用{$H-},則被解釋為ShortString類(lèi)型。
2.2.3結(jié)構(gòu)類(lèi)型
結(jié)構(gòu)類(lèi)型包括:集合(Set)、數(shù)組(Array)、記錄(Record)、文件(File)以及類(lèi)(Class)、類(lèi)引用(ClassReference)、接口(Interface)等類(lèi)型。它的實(shí)例中含有一個(gè)或多個(gè)值。
2.2.4指針類(lèi)型指針是內(nèi)存中數(shù)據(jù)結(jié)構(gòu)的詳細(xì)地址,相當(dāng)于一個(gè)表示內(nèi)存地址的變量。指針類(lèi)型聲明的一般形式為:
Type指針類(lèi)型名
=^類(lèi)型特殊符號(hào)
“^”
表明了是一個(gè)指針類(lèi)型,其后面緊跟的類(lèi)型確定了指針?biāo)赶虻念?lèi)型,可以是簡(jiǎn)單類(lèi)型,如整型、實(shí)型、枚舉等;也可以是結(jié)構(gòu)類(lèi)型,如數(shù)組、集合、記錄等類(lèi)型?!癪”還有另外一種含義,跟在指針類(lèi)型的變量后面,表示具體的值。配合指針操作的還有符號(hào)“@”,它是取址運(yùn)算符,表示取地址操作。
2.2.5過(guò)程類(lèi)型
過(guò)程類(lèi)型變量相當(dāng)于指針的角色,它可指向一個(gè)過(guò)程或函數(shù),并且可以作為另一個(gè)過(guò)程或函數(shù)的參數(shù)使用。其定義的方式如下例:TypeTProcedure=Procedure;//聲明一個(gè)無(wú)參數(shù)過(guò)程類(lèi)型TIntegerFunction=Function:Integer;//聲明一個(gè)無(wú)參數(shù)函數(shù)類(lèi)型,返回值為整型TStringProcedure=Procedure(constS:String);//聲明一個(gè)帶有
String類(lèi)型參數(shù)的過(guò)程類(lèi)型VarProc:Tprocedure;IntF:TintegerFunction;StrP:TstringProcedure;2.2.6可變類(lèi)型
用于標(biāo)識(shí)可變類(lèi)型的保留字是Variant,Variant類(lèi)對(duì)象本質(zhì)上是無(wú)類(lèi)型變量,也就是它們可以自動(dòng)顯現(xiàn)不同的類(lèi)型??勺冾?lèi)型就是為了解決在編譯時(shí)數(shù)據(jù)類(lèi)型無(wú)法確定的情況下,ObjectPascal才引入的數(shù)據(jù)類(lèi)型??勺冾?lèi)型變量舉例如下:VarX:Variant;S:String;BeginX:=10;S:=IntToStr(X+20);X:=‘ObjectPascal’;MessageDlg(X,mtConfirmation,mbYesNoCancel,0);End;2.3運(yùn)算和運(yùn)算符
運(yùn)算是對(duì)數(shù)據(jù)進(jìn)行加工處理的過(guò)程,描述各種不同運(yùn)算的符號(hào)稱(chēng)為運(yùn)算符,而參與運(yùn)算的數(shù)據(jù)稱(chēng)為操作數(shù)。表達(dá)式是表示某個(gè)求值規(guī)則的運(yùn)算公式,它由運(yùn)算符和圓括號(hào)將常量、變量等操作數(shù)以合理的形式組合而成。表達(dá)式可以用來(lái)執(zhí)行運(yùn)算、操作或測(cè)試數(shù)據(jù),每個(gè)表達(dá)式都會(huì)產(chǎn)生惟一的值。表達(dá)式的類(lèi)型由運(yùn)算符的類(lèi)型決定。在ObjectPascal中有以下幾種運(yùn)算符:算術(shù)運(yùn)算符、位運(yùn)算符、字符串運(yùn)算符、關(guān)系運(yùn)算符、布爾運(yùn)算符、集合運(yùn)算符、指針運(yùn)算符、類(lèi)運(yùn)算符和@運(yùn)算符。本節(jié)介紹幾種常用的運(yùn)算和運(yùn)算符。2.3.1算術(shù)運(yùn)算
算術(shù)運(yùn)算的操作對(duì)象為整形或?qū)嵭?,算術(shù)運(yùn)算符包括
+,-,*,/,div和
mod,詳細(xì)說(shuō)明如下表2-8:
表2-8OOPPASCAL語(yǔ)言的算術(shù)運(yùn)算符操作符操作操作數(shù)類(lèi)型結(jié)果類(lèi)型+加整形,實(shí)型整形,實(shí)型-減整形,實(shí)型整形,實(shí)型*乘整形,實(shí)型整形,實(shí)型/除整形,實(shí)型整形,實(shí)型Div整數(shù)除整形整形Mod取模整形整形
2.3.2布爾運(yùn)算
布爾運(yùn)算的操作對(duì)象的類(lèi)型為布爾型,返回的結(jié)果值也是布爾類(lèi)型。布爾運(yùn)算符基本有四個(gè),分別是
Not,And,Or,Xor,其詳細(xì)說(shuō)明如表2-9:
表2-9OOPPASCAL語(yǔ)言的布爾運(yùn)算符
操作符操作操作規(guī)則Not取反NotTrue=False;NotFalse=TrueAnd與(布爾乘)TrueAndTrue=True;AAndFalse=FalseOr或(布爾加)FalseOrFalse=False;AOrTrue=TrueXor異或AXorA=False;AXor(NotA)=True2.3.3邏輯運(yùn)算
邏輯運(yùn)算實(shí)現(xiàn)的是按位的運(yùn)算,它的操作及其操作的結(jié)果均為整數(shù),邏輯運(yùn)算的操作說(shuō)明如下表2-10所示:
表2-10OOPPASCAL語(yǔ)言的邏輯運(yùn)算符
操作符操作操作舉例Not按位取反Not001101=110010And按位與001101And100001=000001Or按位或001101Or100001=101101Xor按位異或001101Xor100001=101100Shl左移13(001101)Shl2=52Shr右移13(001101)Shr2=32.3.4指針運(yùn)算指針運(yùn)算符及其說(shuō)明如下表2-11:
表2-11OOPPASCA語(yǔ)言的指針運(yùn)算符
操作符操作操作數(shù)類(lèi)型結(jié)果類(lèi)型+加法字符指針、整數(shù)字符指針-減法字符指針、整數(shù)字符指針、整數(shù)∧取值指針指針基類(lèi)型=相等指針布爾<>不等指針布爾2.3.5集合運(yùn)算
集合運(yùn)算是以集合類(lèi)型作為操作數(shù)的,它的運(yùn)算符及其說(shuō)明如下表2-12:
表2-12OOPPASCAL語(yǔ)言的集合運(yùn)算符
操作符操作結(jié)果類(lèi)型+并集集合-差集集合*交集集合<=子集布爾>=父集布爾=相等布爾<>不等布爾In屬于布爾2.3.6關(guān)系運(yùn)算
關(guān)系運(yùn)算用于比較兩個(gè)操作數(shù),其返回值的類(lèi)型是布爾型。關(guān)系運(yùn)算符的操作說(shuō)明如下表2-13:
表2-13OOPPASCAL語(yǔ)言的關(guān)系運(yùn)算符
操作符操作操作數(shù)類(lèi)型=相等簡(jiǎn)單類(lèi)型、類(lèi)、類(lèi)引用、接口、字符串、緊縮字符串<>不等簡(jiǎn)單類(lèi)型、類(lèi)、類(lèi)引用、接口、字符串、緊縮字符串<小于簡(jiǎn)單類(lèi)型、字符串、緊縮字符串、PChar>大于簡(jiǎn)單類(lèi)型、字符串、緊縮字符串、PChar<=不大于簡(jiǎn)單類(lèi)型、字符串、緊縮字符串、PChar>=不小于簡(jiǎn)單類(lèi)型、字符串、緊縮字符串、PChar2.3.7字符串運(yùn)算
操作符
+可以用作算術(shù)運(yùn)算符、指針運(yùn)算符和集合運(yùn)算符,還可以用作表示把兩個(gè)字符串類(lèi)型的操作數(shù)相連接,即連接兩個(gè)字符串。例如:‘My’+‘String’=‘MyString’;
2.3.8取址運(yùn)算
取址運(yùn)算符@
,它返回變量、函數(shù)、過(guò)程或方法的地址。關(guān)于取址運(yùn)算符@,其原則說(shuō)明如下:如果
X是變量,則
@X
返回
X的地址;在默認(rèn)的編譯指示{$T-}下,@X的類(lèi)型為
Pointer;而在{$T+}狀態(tài),
@X的類(lèi)型為
^T,其中的
T為
X的類(lèi)型。如果F是一個(gè)過(guò)程或函數(shù),@F返回F的入口點(diǎn),它的類(lèi)型一定是Pointer。
2.3.9運(yùn)算符的優(yōu)先順序在表達(dá)式中有多種運(yùn)算符時(shí),要注意各個(gè)操作符之間的優(yōu)先級(jí)。通常情況下,先作括號(hào)里的運(yùn)算,再?gòu)膬?yōu)先級(jí)由高到低的次序來(lái)做,同等優(yōu)先級(jí)的,按從左到右出現(xiàn)的順序處理。所以,在不清楚具體優(yōu)先級(jí)的情形下,可以使用括號(hào),來(lái)確保程序的正確性。
表2-14OOPPASCAL中運(yùn)算符的優(yōu)先級(jí)
優(yōu)先級(jí)操作符最高@,Not次高*,/,Div,Mod,And,Shl,Shr,As次低+,-
,Or,Xor最低=,<>,<,>,<=,>=,In,Is2.4常量與變量
定義常量的目的基本上有兩種:其一,在程序中經(jīng)常用到某些常數(shù)值,為了書(shū)寫(xiě)方便及減少頻繁輸入造成錯(cuò)誤,可把它定義為一個(gè)常量;其二,就是為了便于程序的閱讀或修改,定義常量可使程序易于維護(hù)。
1.常量的聲明常量可以在程序、單元、過(guò)程或函數(shù)的聲明部分進(jìn)行聲明,常量在說(shuō)明時(shí)就被賦予了一個(gè)值,在程序執(zhí)行過(guò)程中是不可改變的。
聲明常量的一般形式如下:Const
常量名1=常量值1;
常量名2=常量值2;
……
在程序設(shè)計(jì)中常用到兩種形式的數(shù)據(jù),一種是在程序執(zhí)行過(guò)程中其值保持不變的數(shù)據(jù),稱(chēng)為常量;另一種是在程序執(zhí)行過(guò)程中其值可以改變的數(shù)據(jù),稱(chēng)為變量。2.4.1常量2.類(lèi)型常量類(lèi)型常量主要是不能修改的只讀變量。在聲明常量時(shí),直接聲明其常量類(lèi)型。類(lèi)型常量的聲明方法如下:
Const
常量名1:類(lèi)型名=常量值1;
常量名2:類(lèi)型名=常量值2;
……舉例如下:ConstWeekDays:Integer=7;DayInYear:Integer=365;2.4.1常量(2)2.4.2變量變量實(shí)際就是程序員在內(nèi)存中指定的一個(gè)帶有標(biāo)識(shí)符的地址空間,變量名則是這個(gè)指定內(nèi)存地址的標(biāo)識(shí)符,而變量的類(lèi)型則確定了這個(gè)內(nèi)存地址中存的值什么樣是合法的或可能的,并且該內(nèi)存地址里的值是可以改變的。1.變量的聲明變量在使用之前,也必須先進(jìn)行聲明。聲明變量的保留字為Var,其聲明的一般形式如下:
Var
變量名1:類(lèi)型名1;變量名2:類(lèi)型名2;
……聲明變量舉例如下:
VarGz_Sum:Real;Value_1,Value_2:Integer;StrTitle:String;X:Variant;2.4.2變量2.變量的作用域變量的作用域是指它的可見(jiàn)性和生命期??梢?jiàn)性是指可以訪(fǎng)問(wèn)該變量的區(qū)域,生命期是指一個(gè)變量可以保持它的值和可見(jiàn)性的時(shí)間。在
Delphi7中,變量可以在程序、單元、函數(shù)或過(guò)程的聲明部分進(jìn)行聲明,聲明的位置則決定了變量的作用域。
聲明在過(guò)程或函數(shù)內(nèi)部的變量有時(shí)叫做局部變量,而在應(yīng)用程序開(kāi)始聲明的變量叫做全局變量。全局變量可以在聲明時(shí)對(duì)它進(jìn)行初始化,格式為:
var<變量名>:<類(lèi)型名>=<常量表達(dá)式>
其中常量表達(dá)式的值必須與變量定義的類(lèi)型相兼容。2.4.2變量3.變量的強(qiáng)制類(lèi)型轉(zhuǎn)換由于
Delphi的編譯器對(duì)各種類(lèi)型的參數(shù)檢查是非常嚴(yán)格的,類(lèi)型不匹配則通不過(guò)編譯器的編譯檢查,為通過(guò)編譯器的編譯檢查,經(jīng)常需要把一個(gè)變量的類(lèi)型轉(zhuǎn)換為另一個(gè)變量類(lèi)型。強(qiáng)制類(lèi)型轉(zhuǎn)換就是一種技術(shù),通過(guò)它能使編譯器把一種類(lèi)型的變量當(dāng)作另一種類(lèi)型變量,由此來(lái)通過(guò)編譯器的編譯檢查。注:強(qiáng)制類(lèi)型轉(zhuǎn)換要求兩種類(lèi)型在內(nèi)存中存儲(chǔ)空間的大小必須相同,整數(shù)類(lèi)型變量與實(shí)數(shù)類(lèi)型之間不能進(jìn)行這樣的轉(zhuǎn)換,應(yīng)該通過(guò)預(yù)定義的標(biāo)準(zhǔn)函數(shù),如:Trunc()或Round()函數(shù)。
2.5OOPPASCAL中的語(yǔ)句
ObjectPascal中的語(yǔ)句可分為簡(jiǎn)單語(yǔ)句和結(jié)構(gòu)語(yǔ)句兩種。簡(jiǎn)單語(yǔ)句有賦值語(yǔ)句、空語(yǔ)句、跳轉(zhuǎn)語(yǔ)句(Goto語(yǔ)句)和過(guò)程語(yǔ)句;結(jié)構(gòu)語(yǔ)句有復(fù)合語(yǔ)句、條件語(yǔ)句、循環(huán)語(yǔ)句和
開(kāi)域語(yǔ)句(With語(yǔ)句)。
語(yǔ)句的書(shū)寫(xiě)規(guī)則⑴可以把多個(gè)語(yǔ)句放在一個(gè)程序行中,也可把一個(gè)語(yǔ)句分多行書(shū)寫(xiě)⑵每個(gè)語(yǔ)句都必須以分號(hào)“;”結(jié)束。
⑶對(duì)于較為復(fù)雜的程序常用到復(fù)合語(yǔ)句,復(fù)合語(yǔ)句是指將多個(gè)語(yǔ)句用begin和end兩個(gè)保留字包圍起來(lái),格式如下:begin<語(yǔ)句1>;…;<語(yǔ)句n>;end;復(fù)合語(yǔ)句在ObjectPascal中被視為一個(gè)語(yǔ)句,因此在end后必須2.5.1簡(jiǎn)單語(yǔ)句1.賦值語(yǔ)句賦值語(yǔ)句用來(lái)顯式地給變量賦值,即用表達(dá)式的值取代變量的當(dāng)前值。賦值語(yǔ)句的一般形式如下:變量名
:=表達(dá)式
;如:MyNumber_1:=100;
2.空語(yǔ)句在
ObjectPascal中允許使用空語(yǔ)句,所謂空語(yǔ)句就是語(yǔ)句中沒(méi)有任何表達(dá)式的值和賦值符號(hào),只有一個(gè)分號(hào)。
可參見(jiàn)P57例題。2.5.1簡(jiǎn)單語(yǔ)句(2)
3.Goto語(yǔ)句和語(yǔ)句標(biāo)號(hào)
Goto語(yǔ)句可以將程序的執(zhí)行流程轉(zhuǎn)移到程序指定的某個(gè)位置,即轉(zhuǎn)移到其它語(yǔ)句處再繼續(xù)執(zhí)行。Goto語(yǔ)句必須借助語(yǔ)句標(biāo)號(hào)才可能使程序知道轉(zhuǎn)移的位置,ObjectPascal可以使用標(biāo)號(hào)(Labels)來(lái)標(biāo)識(shí)語(yǔ)句以提供Goto語(yǔ)句將跳轉(zhuǎn)的確切位置。Goto語(yǔ)句的一般形式如下:
Goto語(yǔ)句標(biāo)號(hào);注:Goto語(yǔ)句所轉(zhuǎn)向的語(yǔ)句標(biāo)號(hào)必須和該語(yǔ)句同處于相同的程序段內(nèi),不能轉(zhuǎn)入或轉(zhuǎn)出一個(gè)過(guò)程或函數(shù),也不能轉(zhuǎn)入該程序段內(nèi)其它的循環(huán)結(jié)構(gòu)。
2.5.2復(fù)合語(yǔ)句
復(fù)合語(yǔ)句由若干個(gè)簡(jiǎn)單語(yǔ)句或結(jié)構(gòu)語(yǔ)句構(gòu)成,在這些語(yǔ)句前后加入保留字Begin和End即可。其一般形式如下:
Begin
語(yǔ)句1;語(yǔ)句2;
……
語(yǔ)句n;
End;例如:把兩個(gè)變量的值進(jìn)行交換的復(fù)合語(yǔ)句如下:
BeginX:=Number_1;
Number_1:=Number_2;
Number_2:=X;
End;
2.5.3條件語(yǔ)句(1)
ObjectPascal語(yǔ)言提供的條件語(yǔ)句有兩種,即
If語(yǔ)句和
Case語(yǔ)句。
1.If語(yǔ)句
If語(yǔ)句需要計(jì)算一個(gè)表達(dá)式,并根據(jù)計(jì)算結(jié)果決定程序流程。If保留字后的表達(dá)式的值必須是一個(gè)布爾類(lèi)型(Boolean)。其語(yǔ)句的一般形式如下:If<logicalexpression>Then<statement>;或語(yǔ)法中帶有Else子句,如:If<logicalexpression>Then<statement>Else<statement>;其中,<logicalexpression>是一個(gè)邏輯型的表達(dá)式,其值為Boolean類(lèi)型。當(dāng)值為真(True)時(shí),程序執(zhí)行保留字Then后的<statement>;當(dāng)值為假(False)時(shí),程序則執(zhí)行保留字Else后的<statement>。兩種形式中的<statement>即可以是單語(yǔ)句也可以是復(fù)合語(yǔ)句。最后的“;”號(hào)代表著If語(yǔ)句的結(jié)束,所以在保留字Else之前不應(yīng)加有“;”號(hào)。
2.5.3條件語(yǔ)句(2)2.Case語(yǔ)句
Case語(yǔ)句的一般語(yǔ)法形式為:
Case選擇器表達(dá)式Of
情況常量表1:語(yǔ)句1;情況常量表2:語(yǔ)句2;
……
情況常量表n:語(yǔ)句n;
Else
語(yǔ)句
End;其中:選擇器表達(dá)式的值必須為順序類(lèi)型(如整型、字符型、布爾型和子界型等)。情況常量列表中的值應(yīng)是選擇器表達(dá)式可能具有的值。由每一個(gè)情況常量列表列出的值在Case語(yǔ)句中必須是唯一的,相互間值的范圍也不允許有重疊部分。Else提供了如果所列出的情況都不出現(xiàn),應(yīng)執(zhí)行的語(yǔ)句,也就是說(shuō)程序只能選擇一個(gè)執(zhí)行結(jié)果。根據(jù)需要也可以省略掉Else部分和它后面的語(yǔ)句。2.5.3條件語(yǔ)句(3)條件語(yǔ)句舉例:以例題2.2為例,用Case語(yǔ)句來(lái)代替If語(yǔ)句的實(shí)現(xiàn)。程序代碼如下:
CaseMarkOf90..100:ShowMessage('優(yōu)');80..89:ShowMessage('良');70..79:ShowMessage('中');60..69:ShowMessage('及格');0..59:ShowMessage('不及格');ElseShowMessage('輸入超出范圍');End;2.5.4循環(huán)語(yǔ)句(1)
在編程過(guò)程中遇到的好多問(wèn)題是重復(fù)單調(diào)的。比如從1加到100,問(wèn)題雖然簡(jiǎn)單卻要重復(fù)操作。我們可以把這些重復(fù)的動(dòng)作交給計(jì)算機(jī)去完成。引例:求1+2+3+……+100的值。
OOPPascal語(yǔ)言提供了三種循環(huán)語(yǔ)句,每一種可分別適合某一特定情況。這三種循環(huán)分別是:Repeat、While和For循環(huán)語(yǔ)句。
循環(huán)結(jié)構(gòu)只關(guān)心下面的三個(gè)要素:進(jìn)入循環(huán)結(jié)構(gòu)的條件是什么?在什么情況下結(jié)束循環(huán)過(guò)程?循環(huán)體內(nèi)部要完成的操作及在循環(huán)體內(nèi)如何改變循環(huán)條件?
2.5.4循環(huán)語(yǔ)句(2)
1.Repeat循環(huán)語(yǔ)句
Repeat循環(huán)語(yǔ)句是以Repeat開(kāi)始,以Until結(jié)束。它可以重復(fù)執(zhí)行Repeat和Until之間的語(yǔ)句,直至Until后的表達(dá)式為真,則退出循環(huán)執(zhí)行其后的語(yǔ)句。Repeat循環(huán)語(yǔ)句的一般形式為:
Repeat
語(yǔ)句1;語(yǔ)句2;
……
語(yǔ)句n;
Until<邏輯表達(dá)式>;循環(huán)體2.5.4循環(huán)語(yǔ)句(3)
2.While循環(huán)語(yǔ)句While循環(huán)語(yǔ)句在多數(shù)場(chǎng)合下都可以代替Repeat循環(huán)語(yǔ)句,但與Repeat循環(huán)語(yǔ)句不同的是,它的布爾類(lèi)型的表達(dá)式在While之后,即在循環(huán)剛開(kāi)始處,所以While循環(huán)是先進(jìn)行判斷,再執(zhí)行循環(huán)語(yǔ)句。While循環(huán)語(yǔ)句的一般形式為:
While<邏輯表達(dá)式>Do<循環(huán)體語(yǔ)句>
其中,表達(dá)式必須是一個(gè)具有Boolean類(lèi)型值的表達(dá)式。如果表達(dá)式的值為真(True)則執(zhí)行
Do后的循環(huán)體語(yǔ)句;如果表達(dá)式的值為假(False),則不執(zhí)行
While循環(huán)體而直接跳到
While循環(huán)體后再執(zhí)行其它語(yǔ)句。Do后的循環(huán)體語(yǔ)句,可以是簡(jiǎn)單語(yǔ)句、復(fù)合語(yǔ)句或其它結(jié)構(gòu)語(yǔ)句。
2.5.4循環(huán)語(yǔ)句(4)
3.
For循環(huán)語(yǔ)句
For循環(huán)語(yǔ)句可以執(zhí)行一定的次數(shù),它需要一個(gè)循環(huán)變量來(lái)控制循環(huán)的次數(shù)。For循環(huán)語(yǔ)句有兩種形式:增量循環(huán)和減量循環(huán)。
增量循環(huán)
For語(yǔ)句的一般形式為:
For循環(huán)變量名:=初值
To終值
Do語(yǔ)句
減量循環(huán)
For語(yǔ)句的一般形式為:
For循環(huán)變量名:=初值
DownTo終值
Do語(yǔ)句其中,循環(huán)變量必須是一個(gè)順序類(lèi)型的局部變量,也不允許帶有限定符。初值和終值的類(lèi)型應(yīng)和循環(huán)變量的類(lèi)型兼容。循環(huán)體中的語(yǔ)句可以是簡(jiǎn)單語(yǔ)句、復(fù)合語(yǔ)句或結(jié)構(gòu)語(yǔ)句。
2.5.4循環(huán)語(yǔ)句(5)
3.
For循環(huán)語(yǔ)句
For循環(huán)語(yǔ)句可以執(zhí)行一定的次數(shù),它需要一個(gè)循環(huán)變量來(lái)控制循環(huán)的次數(shù)。For循環(huán)語(yǔ)句有兩種形式:增量循環(huán)和減量循環(huán)。
增量循環(huán)
For語(yǔ)句的一般形式為:
For循環(huán)變量名:=初值
To終值
Do語(yǔ)句
減量循環(huán)
For語(yǔ)句的一般形式為:
For循環(huán)變量名:=初值
DownTo終值
Do語(yǔ)句其中,循環(huán)變量必須是一個(gè)順序類(lèi)型的局部變量,也不允許帶有限定符。初值和終值的類(lèi)型應(yīng)和循環(huán)變量的類(lèi)型兼容。循環(huán)體中的語(yǔ)句可以是簡(jiǎn)單語(yǔ)句、復(fù)合語(yǔ)句或結(jié)構(gòu)語(yǔ)句。
2.5.4循環(huán)語(yǔ)句(6)
三種循環(huán)的比較以上三種循環(huán)都可用來(lái)實(shí)現(xiàn)循環(huán),它們的使用特點(diǎn)歸結(jié)為:如果知道循環(huán)執(zhí)行多少次的話(huà),可以使用For循環(huán)語(yǔ)句結(jié)構(gòu)。For循環(huán)執(zhí)行速度快,效率高。如果不知道循環(huán)要執(zhí)行多少次,但至少會(huì)執(zhí)行一次的話(huà),選用Repeat…Until循環(huán)語(yǔ)句結(jié)構(gòu)比較合適;當(dāng)認(rèn)為程序可能一次都不執(zhí)行的話(huà),最好選用While…Do循環(huán)語(yǔ)句結(jié)構(gòu)。Break()過(guò)程和Continue()過(guò)程在While、Repeat或For三種的循環(huán)體中,可調(diào)用Break()過(guò)程,使得程序的執(zhí)行流程發(fā)生改變,即在循環(huán)體中當(dāng)某個(gè)條件成立時(shí)跳出循環(huán)體。如果想跳過(guò)循環(huán)體中部分代碼重新開(kāi)始下一次循環(huán),調(diào)用Continue()過(guò)程。
2.6過(guò)程和函數(shù)一般來(lái)說(shuō)每個(gè)程序都由若干個(gè)主要的任務(wù)構(gòu)成,每個(gè)主要任務(wù)又可分成若干個(gè)子任務(wù),這樣逐層細(xì)化,一直細(xì)化到每個(gè)子任務(wù)都只完成一個(gè)簡(jiǎn)單的基本功能為止。
為此,可以把某些功能完全相同或非常相近的子任務(wù)單獨(dú)提取出來(lái),劃分成程序的基本單元,其它程序可以重復(fù)調(diào)用。這樣做提高了編程效率,是程序更加規(guī)范化,也減少了代碼的出錯(cuò)率。
函數(shù)和過(guò)程就是OOPPascal語(yǔ)言中的兩種子程序,它們可以隨時(shí)被調(diào)用。函數(shù)在執(zhí)行時(shí)將返回一個(gè)值,而過(guò)程執(zhí)行時(shí)不返回任何值。
2.6.1過(guò)程的聲明過(guò)程聲明的一般語(yǔ)法形式為:
procedure過(guò)程名(形式參數(shù)表);指令符;局部聲明:begin執(zhí)行語(yǔ)句
……end;在Delphi7的單元中聲明過(guò)程或函數(shù)時(shí),只需要在單元內(nèi)聲明過(guò)程或函數(shù)頭部(可在單元的接口部分,也可在單元的實(shí)現(xiàn)部分),然后把光標(biāo)定位在頭部?jī)?nèi),點(diǎn)擊鼠標(biāo)右鍵彈出快捷菜單,在該菜單中單擊【CompleteClassatCursor】菜單項(xiàng)即可。Delphi7會(huì)幫助完成自定義過(guò)程、函數(shù)或類(lèi)的輸入。2.6.2函數(shù)的聲明函數(shù)聲明的一般語(yǔ)法形式為:
Function函數(shù)名(形式參數(shù)表):返回類(lèi)型;指令符;局部聲明部分begin執(zhí)行語(yǔ)句……end;需要特別注意的是:函數(shù)必須有返回值,所以在函數(shù)聲明時(shí)要給出返回值的類(lèi)型;而過(guò)程沒(méi)有返回值,聲明時(shí)也就沒(méi)有返回類(lèi)型。
2.6.3過(guò)程和函數(shù)的調(diào)用1.過(guò)程調(diào)用調(diào)用過(guò)程的一般形式如下:過(guò)程名(實(shí)參數(shù)表);如果聲明的過(guò)程沒(méi)有形參,調(diào)用時(shí)便可以省略后面的實(shí)參表,其形式如下:過(guò)程名;2.函數(shù)的調(diào)用調(diào)用函數(shù)的一般形式如下:函數(shù)名(實(shí)參數(shù)表);在調(diào)用過(guò)程和函數(shù)時(shí)要注意:在過(guò)程與函數(shù)聲明的作用域內(nèi)才可調(diào)用該過(guò)程或函數(shù);調(diào)用過(guò)程或函數(shù)時(shí)還要注意有參數(shù)時(shí),參數(shù)的類(lèi)型一定要保持相同。2.6.4參數(shù)傳遞方式在上面的調(diào)用過(guò)程或函數(shù)時(shí),程序?qū)褜?shí)參傳遞給形參,按傳遞方式的不同,OOPPascal中過(guò)程和函數(shù)的參數(shù)可分為:值參數(shù)、常量參數(shù)、變量參數(shù)和外部參數(shù)。1.值參數(shù)如果形式參數(shù)表中的參數(shù)前面沒(méi)有Const、Var或Out聲明的參數(shù),該參數(shù)則為值參數(shù)類(lèi)型。
在OOPPascal中值參數(shù)是按“值傳遞”方式將實(shí)參的值傳送給形參的。值傳遞指的是在調(diào)用子過(guò)程語(yǔ)句被執(zhí)行時(shí),帶實(shí)參值的調(diào)用語(yǔ)句將實(shí)參復(fù)制給子過(guò)程中的形參。所以要求實(shí)參的個(gè)數(shù)、數(shù)據(jù)類(lèi)型與形參個(gè)數(shù)、數(shù)據(jù)類(lèi)型完全匹配。2.6.4參數(shù)傳遞方式2.常量參數(shù)如果形式參數(shù)表中的參數(shù)前面有
Const聲明的參數(shù),該形式參數(shù)則為常量參數(shù)。常量參數(shù)在過(guò)程或函數(shù)中是絕對(duì)不允許改變的參數(shù)值,也不能再作為實(shí)參傳送給該過(guò)程或函數(shù)體中另一個(gè)過(guò)程或函數(shù)的變量形參。如果在一個(gè)過(guò)程或函數(shù)中其形參在執(zhí)行過(guò)程中不應(yīng)該改變其數(shù)值的話(huà),那么就應(yīng)該使用一個(gè)常量參數(shù)。這樣可以保護(hù)形參而杜絕發(fā)生意外的情況。Delphi7系統(tǒng)
在
Sysutils中聲明的字符串比較函數(shù),如
CompareStr()函數(shù)中的形參就是常量參數(shù),它的首部如下:
FunctionCompareStr(ConstS1,S2:String):Integer;2.6.4參數(shù)傳遞方式3.變量參數(shù)如果形式參數(shù)表中的參數(shù)前面有
Var聲明的參數(shù),該形式參數(shù)則為變量參數(shù)類(lèi)型。變量參數(shù)的參數(shù)傳遞方式為“地址傳遞”方式。地址傳遞指的是調(diào)用過(guò)程語(yǔ)句被執(zhí)行時(shí),過(guò)程中的形參直接引用了調(diào)用語(yǔ)句中的實(shí)參。所以形參與實(shí)參實(shí)質(zhì)上是用同一個(gè)存儲(chǔ)單元。如果在子過(guò)程中修改了形參值,就會(huì)直接體現(xiàn)在實(shí)參上,在某些情況下,會(huì)造成負(fù)面影響。2.6.4參數(shù)傳遞方式4.外部參數(shù)如果形式參數(shù)表中的參數(shù)前面有
Out聲明的參數(shù),該形式參數(shù)則為外部參數(shù)類(lèi)型。外部參數(shù)與變量參數(shù)一樣在實(shí)參與形參之間的值傳遞是按地址傳遞方式進(jìn)行的。但是使用時(shí)與變量參數(shù)有很大的區(qū)別。當(dāng)調(diào)用含有外部參數(shù)的過(guò)程或函數(shù)時(shí),所引用的實(shí)參(變量)的初始值將被拋棄,該變量?jī)H被用來(lái)作為一個(gè)容器來(lái)存儲(chǔ)過(guò)程或函數(shù)執(zhí)行的中間結(jié)果。在編寫(xiě)應(yīng)用象COM、CORBA這樣的分布式對(duì)象模型的程序中,會(huì)經(jīng)常使用外部參數(shù)。
可視化組件的應(yīng)用
內(nèi)容提要
窗體與組件常用組件的使用3.1窗體與組件在Windows環(huán)境中,人機(jī)交互主要是在一些窗體和對(duì)話(huà)框中進(jìn)行的。在Delphi中,窗體指的就是窗口和對(duì)話(huà)框,進(jìn)行可視化程序設(shè)計(jì)一般就是從窗體開(kāi)始并在窗體中完成的。窗體本身就是一個(gè)組件,它與其他組件不同的是:窗體像一個(gè)可以放置東西的容器,可以根據(jù)任務(wù)的需要在其上放置各種各樣的組件。窗體與組件的關(guān)系參見(jiàn)圖3-1。3.1.1窗體與組件的關(guān)系圖3-1窗體與組件3.1.2組件的公共屬性和事件
不同的組件具有不同的屬性、方法和事件,但有些屬性和事件是公共的,也就是它們雖然出現(xiàn)在不同的組件中但含義和使用方法相同。
1.常用的公共屬性(1)Action屬性。用來(lái)設(shè)置與菜單項(xiàng)相關(guān)的動(dòng)作對(duì)象,可以通過(guò)動(dòng)作列表編輯器來(lái)設(shè)置。(2)Align屬性。用于決定組件在窗體或上一級(jí)組件中的位置和尺寸。(3)Autosize屬性。用于決定組件是否隨其所包含內(nèi)容的大小而調(diào)整尺寸。(4)Caption屬性。用來(lái)設(shè)置組件的標(biāo)題。(5)Color屬性。用來(lái)設(shè)置組件的顏色。
(6)Cursor
屬性。用于設(shè)定當(dāng)鼠標(biāo)的光標(biāo)落入該組件的區(qū)域時(shí)鼠標(biāo)光標(biāo)的形狀。(7)Font
屬性。用于設(shè)置組件上所顯示的文字的字體。(8)Height
屬性和Width屬性。用于設(shè)置組件的高度和寬度。(9)Hint
屬性和ShowHint屬性。Hint屬性用于設(shè)置鼠標(biāo)在組件上停留是顯示提示信息的內(nèi)容;ShowHint屬性用于指定鼠標(biāo)在該組件上停留時(shí)是否顯示提示信息。(10)Left
屬性和Top屬性。指定該組件在窗體中的左上頂點(diǎn)的坐標(biāo)值。(11)Name
屬性。這是每個(gè)組件都具有的屬性,該屬性用于指明組件對(duì)象的名字,通過(guò)組件對(duì)象的名字來(lái)使用組件。(12)ParentColor
屬性。
ParentFont屬性和ParentShowHint屬性。當(dāng)這些屬性值設(shè)置為T(mén)ure時(shí),組件使用它的上一級(jí)組件的同一屬性的設(shè)置植,這樣可以使程序保持一致的風(fēng)格。(13)PopUpMenu
屬性。用于指定當(dāng)右擊該組件時(shí)彈出時(shí)的彈出式菜單PopUpMenu的名字,此時(shí)這個(gè)彈出式菜單應(yīng)該已經(jīng)存在,PopUpMenu本身也是一個(gè)組件。(14)Text屬性。 用于指定文本類(lèi)組件顯示的文本,類(lèi)似于Caption屬性。(15)Visible屬性。決定組件是否可見(jiàn)。當(dāng)設(shè)置為T(mén)rue時(shí),在運(yùn)行時(shí)可以看到該組件;設(shè)為False時(shí)運(yùn)行時(shí)不可見(jiàn)。2.常用的公共事件
⑴
onClick事件。鼠標(biāo)左鍵單擊某組件時(shí)觸發(fā)該事件。⑵
onDblClick事件。鼠標(biāo)左鍵雙擊某組件時(shí)觸發(fā)該事件。⑶
OnEnter事件和OnExit事件。
當(dāng)通過(guò)鼠標(biāo)單擊組件或Tab鍵跳轉(zhuǎn)到組件上時(shí),該組件獲得焦點(diǎn),此時(shí)該組件的OnEnter事件被觸發(fā);該組件由焦點(diǎn)狀態(tài)轉(zhuǎn)為非焦點(diǎn)狀態(tài)時(shí)將觸發(fā)OnExit事件。⑷
OnMouseDown事件、OnMouseMove事件和OnMouseUp事件這是響應(yīng)鼠標(biāo)的一組事件。其中當(dāng)鼠標(biāo)在組件上被按下時(shí)觸發(fā)OnMouseDown事件;當(dāng)鼠標(biāo)在組件的顯示區(qū)域內(nèi)移動(dòng)時(shí)觸發(fā)OnMouseMove事件;當(dāng)釋放了在組件區(qū)域內(nèi)按下的鼠標(biāo)鍵時(shí)觸發(fā)OnMouseUp事件。這三個(gè)事件不僅可以判斷鼠標(biāo)按下的是左、中、右鍵中的哪一個(gè)鍵,還可以判斷是否同時(shí)按下了Alt、Shift或Ctrl鍵。具體應(yīng)用請(qǐng)看下面章節(jié)的組件介紹。⑸OnKeyDown事件、OnKeyUp事件和OnKePress事件這是響應(yīng)鍵盤(pán)的一組事件。組件處于激活的焦點(diǎn)狀態(tài)時(shí),按下了鍵盤(pán)上的鍵時(shí)將觸發(fā)OnKeyDown事件,返回的是按下鍵的鍵值,可以是復(fù)合鍵;釋放一個(gè)按下的鍵時(shí)將觸發(fā)OnKeyUp事件;鍵盤(pán)上的鍵一次完整地按下和釋放操作將觸發(fā)OnKeyPress事件。
3.2常用組件的使用Delphi封裝了大量的可視化組件,使程序員能夠在拖拖放放中輕松地設(shè)計(jì)程序界面。Delphi中提供的【Standard】、【Additional】和【W(wǎng)in32】三個(gè)標(biāo)簽頁(yè)放置基本組件。這些組件都是任何程序設(shè)計(jì)必不可少的。本節(jié)將詳細(xì)介紹常用組件的使用方法。3.2.1Label組件
Label(標(biāo)簽)組件在Standard標(biāo)簽頁(yè)中,主要用于在窗體中顯示提示信息,常與Edit組件一起使用,是顯示文本的主要組件。其特殊屬性有:1.Autosize屬性 該屬性用來(lái)判斷Label(標(biāo)簽)組件是否隨Caption屬性值自動(dòng)調(diào)整大小。如果該屬性值為T(mén)rue,則Label的長(zhǎng)度隨著Caption屬性值自動(dòng)調(diào)整大??;如果該屬性值為False,則Label保持設(shè)計(jì)時(shí)定義的大小不變,此時(shí),若標(biāo)題太長(zhǎng),則只能顯示部分內(nèi)容。2.Caption屬性 該屬性用來(lái)設(shè)置在標(biāo)簽上顯示的文本。3.Wordwrap該屬性 該屬性用于設(shè)置Caption屬性的顯示方式。缺省為False,表示標(biāo)簽上的標(biāo)題(提示信息)不能自動(dòng)換行;如果該屬性為T(mén)rue,則標(biāo)簽將在垂直方向變化大小,以使其與顯示的文本相適應(yīng),而水平方向的大小不變。但若想使該屬性起作用,還必須將Autosize屬性設(shè)為T(mén)rue。4.Layout該屬性 該屬性可以改變文本在標(biāo)簽中的位置。5.Transparent該屬性 該屬性決定標(biāo)簽的背景是否透明。其值為T(mén)rue時(shí),透明,即標(biāo)簽不會(huì)擋住它下面的組件。默認(rèn)值為False。3.2.2Edit組件
Edit組件在Standard標(biāo)簽頁(yè)中,也稱(chēng)編輯框組件是Windows程序中常用的組件,它主要用于輸入單行文字。Edit組件的常用屬性有:1.AutoSelect屬性
該屬性確定當(dāng)編輯框獲得輸入焦點(diǎn)時(shí),編輯框中的文字是否自動(dòng)被選中。2.AutoSize屬性該屬性確定編輯框是否隨字體變化而自動(dòng)變動(dòng)尺寸,缺省為T(mén)rue。3.BorderStyle屬性該屬性確定Edit控件是否有邊框。4.CharCase屬性該屬性設(shè)置文本框內(nèi)字符的大小寫(xiě),其值為:ecLowerCase,全部轉(zhuǎn)換為小寫(xiě);ecNormal,不轉(zhuǎn)換;ecUpperCase,全部轉(zhuǎn)換為大寫(xiě)。5.HideSelection屬性該屬性決定當(dāng)輸入焦點(diǎn)從Tmemo組件移走后,編輯框內(nèi)原來(lái)被選中的文本是否依然保持選中狀態(tài)。其設(shè)置為T(mén)rue,不保持;其值為False,保持。該屬性的默認(rèn)值為T(mén)rue。6.MaxLength屬性該屬性確定編輯框最多可以輸入的字符數(shù),缺省值為0,表示可以輸入任意多的字符;如果該屬性不為0,只能向編輯框中輸入小于或等于設(shè)定值的字符數(shù)。7.Modified屬性該屬性確定編輯框中的內(nèi)容自建立以來(lái)或者M(jìn)odified屬性最后一次被設(shè)置為False之后是否被修改。8.PasswordChar屬性該屬性在一些編輯框組件如TMaskEdit、TDBEdit中都有。缺省時(shí)該屬性為#0,即沒(méi)有掩碼。用戶(hù)可以自己設(shè)置一個(gè)掩碼,如‘*’,則用戶(hù)在編輯框中輸入的字符都將以‘*’字符顯示,而隱藏真實(shí)的字符。9.Text屬性該屬性用于顯示和保存編輯框中的內(nèi)容。10.ReadOnly屬性該屬性確定程序運(yùn)行時(shí),用戶(hù)是否可以改變編輯框中的內(nèi)容。若為T(mén)rue,表示編輯框是只讀的,其內(nèi)容不可以編輯修改。11.SelLength屬性該屬性可以返回在編輯框中被選中的文本的長(zhǎng)度。12.SelStart該屬性該屬性確定在編輯框中被選中文本的起始位置(第一個(gè)字符的序號(hào)為0)。13.SelText屬性該屬性用來(lái)設(shè)置或指示選中的文本。
Edit組件的主要方法方法說(shuō)明Clear使用該方法可以清除文本框中的文本內(nèi)容。CanFocus該方法用來(lái)測(cè)試Memo控件是否可以接受焦點(diǎn)。如果其值為False,則控件不能接受焦點(diǎn);反之可以接受焦點(diǎn)。ClearSelection該方法將刪除Memo框中被選中的文本。如果在Memo控件中沒(méi)有被選擇的內(nèi)容,那么該方法不刪除任何東西。CopyToClipboard使用該方法可以將文本框中選中的內(nèi)容復(fù)制到剪切板中。CutToClipboard使用該方法可以將文本框中選中的內(nèi)容剪切到剪切板中。PasteFromClipboard使用該方法可以將剪切板中的內(nèi)容粘貼到文本框中。SelectAll使用該方法將選中文本框中的所有內(nèi)容。
Edit組件常用的幾個(gè)事件有:OnChange、OnKeyPress、OnEnter事件。Edit組件的常用事件
事件說(shuō)明OnChange當(dāng)編輯框中的內(nèi)容發(fā)生變化時(shí),觸發(fā)該事件,它是Edit中最常用,也是最有用的事件之一。OnKeyPress當(dāng)按下一個(gè)按鍵時(shí),觸發(fā)該事件。OnEnter編輯框獲得輸入焦點(diǎn)時(shí),觸發(fā)該事件。3.2.3Memo組件Memo組件在Standard標(biāo)簽頁(yè)中,Memo組件為用戶(hù)提供了一種處理多行文本的方法,還可用它快速地閱讀文件中的數(shù)據(jù),而且讀取和保存文本的最大長(zhǎng)度可達(dá)255KB。
Memo組件的屬性
Memo組件的屬性、方法和事件與Edit組件大致相同。其特有的幾個(gè)屬性有:1.Lines屬性按行處理文本。2.ScrollBars屬性該屬性用來(lái)設(shè)置備注框是否出現(xiàn)滾動(dòng)條以及滾動(dòng)條的種類(lèi)。3.WordWrap屬性該屬性用來(lái)決定當(dāng)輸入的文本到達(dá)右邊界時(shí)是否插入軟回車(chē),以便換到下一行再輸入。3.2.3Memo組件Memo組件的方法⑴
使用剪貼板(Clipboard)
Memo組件同Edit組件一樣,也可使用CutToClipboard、CopyToClipboard和PastFromClipboar這三種方法,實(shí)現(xiàn)將Memo組件中被選擇文本剪切或復(fù)制到剪貼板上,以及將剪切板上的內(nèi)容粘貼到Memo組件中。 將Memo中的選中文本剪切到剪貼板的語(yǔ)句如下:
ifMemo1.SelLength>0then Memo1.CutToClipboard;2.文本的添加(Add方法)
利用Lines屬性,可以增加、刪除一行文本,也可以移動(dòng)一行文本。下面的代碼將文本添加到Memo中的最后一行:
Memo1.Lines.Add(‘在Memo1的最后添加一行文本’);3.文件的保存和裝載(LoadFile方法、SaveToFile方法)
Memo1.Lines.LoadFile(Opendialog1.FileName)
可以將Memo組件中的文本保存成文本文件,也可以將文本文件裝載到Memo中。這需要配合使用SaveDialog組件和OpenDialog組件。將Memo中的文本保存為文本文件的語(yǔ)句為:
ifSaveDialog1.Executethen//打開(kāi)保存
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
以上語(yǔ)句先打開(kāi)保存對(duì)話(huà)框,然后將Memo中的文本保存對(duì)話(huà)框到一個(gè)文件中,文件名為我們?cè)赟aveDialog中輸入的文本。在Memo中裝載文本文件的語(yǔ)句為:
ifOpendialog1.ExecutethenMemol.Lines.LoadFile(Opendialogl.FileName);
3.2.4MaskEdit組件
MaskEdit組件在Additional標(biāo)簽頁(yè)中,MaskEdit組件(也稱(chēng)掩碼編輯框)是一種特殊的編輯框,它的主要屬性是EditMask。使用它
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版高??蒲谐晒D(zhuǎn)化合同管理規(guī)定2篇
- 2025年度社區(qū)垃圾分類(lèi)與回收處理服務(wù)合同范本2篇
- 2025年度智能交通系統(tǒng)技術(shù)改造合同2篇
- 二零二五年度房地產(chǎn)維修基金補(bǔ)充協(xié)議合同模板3篇
- 2025年度生鮮乳產(chǎn)業(yè)鏈上下游協(xié)同發(fā)展協(xié)議3篇
- 螞蟻運(yùn)糧項(xiàng)目課程設(shè)計(jì)
- 2025年度汽車(chē)租賃合同糾紛調(diào)解協(xié)議書(shū)2篇
- 二零二五年度干掛石材研發(fā)與生產(chǎn)合作協(xié)議2篇
- 海南衛(wèi)生健康職業(yè)學(xué)院《植物學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度男方債務(wù)處理離婚協(xié)議示范書(shū)3篇
- 2024年國(guó)家公務(wù)員考試行政職業(yè)能力測(cè)驗(yàn)真題及答案
- 2024年便攜式儲(chǔ)能行業(yè)分析報(bào)告
- 科研倫理與學(xué)術(shù)規(guī)范期末考試試題
- 2024年秋季人教版新教材七年級(jí)上冊(cè)語(yǔ)文全冊(cè)教案(名師教學(xué)設(shè)計(jì)簡(jiǎn)案)
- 2024中華人民共和國(guó)農(nóng)村集體經(jīng)濟(jì)組織法詳細(xì)解讀課件
- 2025屆湖南省長(zhǎng)沙市青竹湖湘一外國(guó)語(yǔ)學(xué)校七年級(jí)數(shù)學(xué)第一學(xué)期期末經(jīng)典試題含解析
- 2024中國(guó)食藥同源大健康產(chǎn)業(yè)消費(fèi)洞察與產(chǎn)業(yè)發(fā)展分析白皮書(shū)
- 郵政銀行借款合同
- 2024屆廣州市番禺區(qū)重點(diǎn)名校中考數(shù)學(xué)全真模擬試題含解析
- 出現(xiàn)產(chǎn)品質(zhì)量問(wèn)題退換貨承諾
- 合伙開(kāi)托管班協(xié)議書(shū)4篇
評(píng)論
0/150
提交評(píng)論