Delphi編程經(jīng)典教程_第1頁(yè)
Delphi編程經(jīng)典教程_第2頁(yè)
Delphi編程經(jīng)典教程_第3頁(yè)
Delphi編程經(jīng)典教程_第4頁(yè)
Delphi編程經(jīng)典教程_第5頁(yè)
已閱讀5頁(yè),還剩479頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Delphi教程教程清華大學(xué)出版社清華大學(xué)出版社課程介紹課程介紹 Delphi是著名的Borland公司開(kāi)發(fā)的可視化軟件開(kāi)發(fā)環(huán)境,自1995年問(wèn)世以來(lái),帶來(lái)了程序設(shè)計(jì)中的一場(chǎng)重大變化。Delphi作為第四代編程語(yǔ)言,具有簡(jiǎn)單、高效和功能強(qiáng)大等特點(diǎn),這些特點(diǎn)使得它為廣大程序開(kāi)發(fā)者所青睞。 第1章 Delphi基礎(chǔ)知識(shí)1.1 Delphi簡(jiǎn)介簡(jiǎn)介 Delphi作為一種可視化的編程環(huán)境,經(jīng)歷了7代產(chǎn)品的發(fā)展歷程: Borland公司在1995年推出了基于Windows平臺(tái)的Delphi 1。 Delphi 2新增加的主要功能是對(duì)32位編程的支持。還增加了如數(shù)據(jù)模塊等多種高效的數(shù)據(jù)重用功能。 Delp

2、hi 3對(duì)其組件庫(kù)進(jìn)行增強(qiáng) ,完全支持ActiveX組件及其創(chuàng)建 。Delphi 4提供了Object Pascal語(yǔ)言的擴(kuò)展 ,但系統(tǒng)穩(wěn)定性較差 。1999年推出Delphi 5增強(qiáng)了數(shù)據(jù)庫(kù)的功能 2001年6月推出Delphi 6 ,增加了大量的新組件,使組件數(shù)目達(dá)350多個(gè),以滿(mǎn)足網(wǎng)絡(luò)開(kāi)發(fā)的需要。 2002年8月推出 Delphi 7 ,在集成開(kāi)發(fā)環(huán)境IDE、Web、數(shù)據(jù)庫(kù)、編譯器、模型生成支持及組件庫(kù)等很多方面進(jìn)行了改進(jìn)。 1.2 Delphi7 IDE1.2.1 認(rèn)識(shí)集成開(kāi)發(fā)環(huán)境認(rèn)識(shí)集成開(kāi)發(fā)環(huán)境 Delphi 7的IDE主要包括7個(gè)部分:主窗口、組件面板、工具欄、窗體設(shè)計(jì)器、代碼編輯

3、器、對(duì)象觀(guān)察器和代碼瀏覽器。 圖1-1 Delphi 7的IDE1.主窗口主窗口 主要包括:菜單欄、工具欄、標(biāo)題欄和組件面板 Delphi7的主菜單包括11個(gè)下拉菜單 注意:工具欄上的按鈕都提供了描述該按鈕功能的tooltip,除了組件面板IDE有6個(gè)獨(dú)立的工具欄 IDE工具欄的定制功能并不僅限于配置需要顯示的按鈕,還可以調(diào)整工具欄、組件面板和菜單欄在主窗口中的位置。 圖1-2 Delphi 7的主窗圖口 Delphi7組件板包含了350多個(gè)組件,是Delphi可視化編程的核心部件,它由27個(gè)選項(xiàng)卡組成 組件面板如圖1-4所示 包含了IDE中安裝的所有的VCL組件和ActiveX組件 將組件板

4、上的組件添加到窗體上的三種方法:?jiǎn)螕艚M件板上的所需組件的按鈕,然后在窗體適當(dāng)位置拖動(dòng)鼠標(biāo)畫(huà)出組件,即可將組件添加到窗體的指定位置上 圖1-4 Delphi 7的組件面板雙擊組件板上的所需組件的按鈕,即可將組件添加到窗體的中心位置按下鍵不放,單擊組件板上的所需組件的按鈕,所選組件出現(xiàn)藍(lán)色邊框,同時(shí)對(duì)象選擇按鈕將彈起 組件板中的組件分為可視組件與非可視組件 2.窗體設(shè)計(jì)器窗體設(shè)計(jì)器 在創(chuàng)建新的項(xiàng)目時(shí),窗體設(shè)計(jì)器是一個(gè)空白的窗口??梢杂檬髽?biāo)調(diào)整組件在窗體設(shè)計(jì)器上的位置和大小,還可以用對(duì)象觀(guān)察器和代碼編輯器來(lái)控制組件的外觀(guān)和行為 。3.對(duì)象觀(guān)察器對(duì)象觀(guān)察器 利用對(duì)象觀(guān)察器,可以修改窗體或組件的屬性,或

5、者使它們能夠響應(yīng)不同的事件 。 屬性(Property)是一些數(shù)據(jù),如高度、顏色、字體等,它們決定了組件在屏幕上的外觀(guān)。事件(Event)則是一種消息處理機(jī)制,它能夠捕捉某種情況的發(fā)生并做出反應(yīng),像鼠標(biāo)單擊和窗口打開(kāi)就是兩種典型的事件。 對(duì)象觀(guān)察器類(lèi)包括Properties選項(xiàng)卡和Events選項(xiàng)卡 下圖兩個(gè)對(duì)象觀(guān)察器,左邊一個(gè)按種類(lèi)排序,右邊一個(gè)按名字排序。注意:幫助系統(tǒng)是和對(duì)象觀(guān)察器緊密結(jié)合在一起的,想了解某個(gè)屬性或事件的幫助信息,只要在該屬性或事件上按下F1 鍵 圖1-5 按種類(lèi)或名稱(chēng)查看Object Inspector4.代碼編輯器代碼編輯器 代碼編輯器是輸入代碼來(lái)指定應(yīng)用程序行為的地

6、方,也是Delphi根據(jù)應(yīng)用程序中的組件自動(dòng)生成代碼的地方。當(dāng)向應(yīng)用程序中加入一個(gè)窗體時(shí),Delphi會(huì)自動(dòng)創(chuàng)建一個(gè)新的單元,并添加到代碼編輯器頂部的標(biāo)簽中。5.代碼瀏覽器代碼瀏覽器 以一種樹(shù)狀視圖方式顯示列在代碼編輯器中的單元文件。通過(guò)它,可以方便地在單元文件中漫游或在單元文件中加入新的元素或者把已有的文件改名。要記住代碼瀏覽器和代碼編輯器有一對(duì)一的關(guān)系。 6.源代碼生成器源代碼生成器 當(dāng)對(duì)窗體設(shè)計(jì)器中可視化組件進(jìn)行操作時(shí)Delphi IDE自動(dòng)生成Object Pascal源代碼。 當(dāng)用【File】|【New】|【Application】菜單命令創(chuàng)建一個(gè)新的項(xiàng)目時(shí),將看到屏幕上出現(xiàn)一個(gè)空白

7、的窗體設(shè)計(jì)器,同時(shí),代碼編輯器中會(huì)自動(dòng)出現(xiàn)一些代碼,如下所示:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;type TForm1 = class(TForm) private Private declarations public Public declarations end;var Form1: TForm1;implementation$R *.dfmend. 從上述源代碼清單中可以看出,窗體對(duì)象是從TForm繼承下來(lái)的

8、。 下面這一行非常重要: $R*.dfm Pascal語(yǔ)言中的$R指令用于加載一個(gè)外部資源文件。*.dfm文件中包含在窗體設(shè)計(jì)器中創(chuàng)建的表單的二進(jìn)制代碼。其中的“*” 表示與當(dāng)前單元文件同名的文件。 項(xiàng)目文件的擴(kuò)展名是.dpr 可以選擇主菜單下的【Project】|【View Source】命令把項(xiàng)目源文件調(diào)入代碼編輯器。 如下用程序示例的項(xiàng)目文件: program Project1;uses Forms, Unit1 in Unit1.pas Form1;$R *.resbegin Application.Initialize; Application.CreateForm(TForm1,

9、Form1); Application.Run;end.當(dāng)添加表單和單元時(shí)將出現(xiàn)在uses子句中 1.2.2 基于組件的編程思想基于組件的編程思想 .早期DOS操作系統(tǒng)和C語(yǔ)言主導(dǎo)的時(shí)代,“數(shù)據(jù)結(jié)構(gòu)+算法”成為構(gòu)建軟件惟一方式 .C+語(yǔ)言和面向?qū)ο蠹夹g(shù) . 20世紀(jì)90年代中期流行一種嶄新的程序設(shè)計(jì)概念 :軟件可以由可互換的組件構(gòu)成 組件是一種通過(guò)公開(kāi)的屬性、方法、事件,是可以重復(fù)使用的一種經(jīng)過(guò)編譯的二進(jìn)制文件,其文件名可以是.OCX或者是.dll,如命令按鈕、復(fù)選框、單選框、滾動(dòng)條等都是常見(jiàn)的組件。 1.2.3 Delphi 7的特點(diǎn)的特點(diǎn) Delphi最顯著的特點(diǎn)就是高效性和穩(wěn)定性,主要體

10、現(xiàn)在以下4個(gè)方面:可視化開(kāi)發(fā)環(huán)境的性能。編譯器的速度和已編譯代碼的效率。編程語(yǔ)言的功能及其復(fù)雜性。豐富的VCL1.可視化開(kāi)發(fā)環(huán)境可視化開(kāi)發(fā)環(huán)境 可視化開(kāi)發(fā)環(huán)境通??煞譃?個(gè)部分:編輯器、調(diào)試窗口和窗體設(shè)計(jì)器。 2.編譯器的速度和已編譯代碼的效率編譯器的速度和已編譯代碼的效率 Pascal編譯器最著名特點(diǎn)就是速度快,而Delphi正是建立在這種編譯器基礎(chǔ)之上的。 增加了鏈接和各種緩存策略,尤其是在Visual C+和C+ Builder中。3.編程語(yǔ)言的功能及其復(fù)雜性編程語(yǔ)言的功能及其復(fù)雜性 匯編是一種最有力的語(yǔ)言,即便是用匯編開(kāi)發(fā)最簡(jiǎn)單的應(yīng)用程序,難度也非常大,還可能一無(wú)所獲。 4.豐富的豐富

11、的VCL VCL是Delphi7最重要的組成部分,包含不同種類(lèi)的組件 。1.2.4 幫助的使用幫助的使用(1)當(dāng)遇到問(wèn)題時(shí),可以嘗試按下【F1】鍵,一般情況下Delphi都會(huì)準(zhǔn)確地定位。 (2)如果需要瀏覽系統(tǒng)的一些幫助內(nèi)容,比如說(shuō)對(duì)象Pascal語(yǔ)言,可以通過(guò)菜單【Help】|【Delphi Help】命令打開(kāi)【幫助主題:Delphi Help】對(duì)話(huà)框,在目錄標(biāo)簽中展開(kāi)相關(guān)條目,進(jìn)行系統(tǒng)學(xué)習(xí)。3)當(dāng)使用Windows API函數(shù)時(shí),通過(guò)【Help】|【Delphi Help】打開(kāi)的【幫助主題:Delphi Help】對(duì)話(huà)框中,在【索引】選項(xiàng)卡中可能查不到有關(guān)的幫助信息,有兩種解決辦法: 一種

12、辦法是在代碼編輯器中輸入Windows API函數(shù)的名稱(chēng),然后將光標(biāo)定位到該名稱(chēng)中,接著按下【F1】鍵。 另一種辦法是通過(guò)【Help】|【W(wǎng)indows SDK】打開(kāi)幫助文件Win32.hlp,在【索引】選項(xiàng)卡中查找。(4)幫助文件打開(kāi)時(shí),要瀏覽相關(guān)內(nèi)容,可以按下工具欄中的【】或【】按鈕,通常這樣是在同一個(gè)主題中瀏覽。通過(guò)一些See Also熱鏈接,也可以查看相關(guān)的幫助內(nèi)容。(5)在組件欄上右擊,通過(guò)快捷菜單的Help命令,可以查看有關(guān)組件的幫助內(nèi)容。 (6)在Delphi集成開(kāi)發(fā)環(huán)境中,通過(guò)【Help】|【Customize】命令可以打開(kāi)【Open Help】窗口,在該窗口中可以對(duì)幫助文件進(jìn)

13、行管理,其中包括幫助內(nèi)容、幫助索引、鏈接位置和幫助工程文件等的管理。1.3 簡(jiǎn)單簡(jiǎn)單Delphi程序設(shè)計(jì)程序設(shè)計(jì) Delphi 7編寫(xiě)應(yīng)用程序包括新建應(yīng)用程序、設(shè)置窗體屬性、添加組件、設(shè)置組件屬性、添加事件、編寫(xiě)事件響應(yīng)代碼、編譯運(yùn)行等1.新建應(yīng)用程序新建應(yīng)用程序 啟動(dòng)Delphi 7,選擇【File】|【New】|【Application】菜單,新建一個(gè)應(yīng)用程序。2.設(shè)置窗體屬性設(shè)置窗體屬性 單擊【Object Inspector】,在對(duì)象觀(guān)察器中打開(kāi)【Properties】選項(xiàng)卡,單擊Caption屬性右側(cè),輸入窗體的新標(biāo)題“窗口”。3.向窗體中添加組件向窗體中添加組件 單擊Standar

14、d選項(xiàng)卡上的Button組件,將鼠標(biāo)指向窗體中的任意位置(標(biāo)題欄除外),單擊鼠標(biāo),即可把Button1組件放入窗體中。或者直接雙擊組件面板上的Button組件,也可以在窗體中添加一個(gè)Button1組件。4.設(shè)置組件屬性設(shè)置組件屬性 選中組件,單擊Object Inspector的標(biāo)題欄以激活對(duì)象觀(guān)察器,并選擇Properties選項(xiàng)卡。在對(duì)象觀(guān)察器中單擊要設(shè)置的屬性,進(jìn)行屬性設(shè)置。5.添加事件添加事件 選中要添加事件的組件,激活對(duì)象觀(guān)察器,并選擇Event選項(xiàng)卡,在對(duì)象觀(guān)察器中單擊要添加的事件,在其右側(cè)輸入事件的響應(yīng)函數(shù)名稱(chēng),然后回車(chē)即可。 6.編寫(xiě)事件響應(yīng)代碼編寫(xiě)事件響應(yīng)代碼 選定要編寫(xiě)事件

15、響應(yīng)代碼的組件 ,打開(kāi)Event選項(xiàng)卡,雙擊要編寫(xiě)響應(yīng)代碼的事件右側(cè)的空白部分,進(jìn)入代碼編輯窗口。 procedure TForm1.Button1Click(Sender: TObject); /單擊放大按鈕,窗口將放大beginform1.Height:=form1.Height+10; /窗口高度10form1.Width:=form1.Width+10; /窗口寬度10end;procedure TForm1.Button2Click(Sender: TObject); /單擊縮小按鈕,窗口將縮小單擊縮小按鈕,窗口將縮小Beginform1.Height:=form1.Height-1

16、0; /窗口高度減窗口高度減10 form1.Width:=form1.Width-10; /窗口寬度減10end;procedure TForm1.Button3Click(Sender: TObject); /關(guān)閉窗口beginclose; /退出end;7.編譯運(yùn)行程序編譯運(yùn)行程序圖1-6 例程運(yùn)行界面1.4 Delphi上機(jī)步驟上機(jī)步驟1.啟動(dòng)程序啟動(dòng)程序2.添加組件添加組件在窗體設(shè)計(jì)器中添加如圖1-7所示的各組件。3.設(shè)置組件屬性設(shè)置組件屬性4.編寫(xiě)代碼編寫(xiě)代碼組件屬性設(shè)置完成后,編寫(xiě)如下代碼:圖1-7 窗體布局圖 procedure TForm1.Edit1Change(Sende

17、r: TObject); /編輯框1中的內(nèi)容改變時(shí)的事件 var stringlength:integer; /定義整型變量,記錄編輯框1中字符的個(gè)數(shù) begin stringlength:=edit1.GetTextLen; /得到編輯框1中字符個(gè)數(shù) edit2.Text:=inttostr(stringlength); /編輯框2顯示編輯框1中字符個(gè)數(shù) end; procedure TForm1.Button1Click(Sender: TObject); /關(guān)閉窗口 begin close; end;5.保存工程保存工程保存工程分為保存單元文件和保存項(xiàng)目文件兩步。 第一步是保存單元文件,

18、單擊工具欄上的Save按鈕,將打開(kāi)Save Unit1 As窗口,默認(rèn)的單元文件名是“Unit1.pas”,以“.pas”為擴(kuò)展名,單元文件名根據(jù)需要可以另取 。 第二步是保存項(xiàng)目文件,單擊工具欄上Save Project1 As按鈕,默認(rèn)的項(xiàng)目文件名是“Project1.dpr”,工程文件名根據(jù)需要可以另取以“.dpr”為擴(kuò)展名 6.運(yùn)行工程運(yùn)行工程保存工程結(jié)束后即可運(yùn)行工程 小結(jié)小結(jié) 在本章中,主要介紹了Delphi的產(chǎn)生和發(fā)展,Delphi的特點(diǎn),使用Delphi進(jìn)行程序設(shè)計(jì)的一些基礎(chǔ)知識(shí)。本章的重點(diǎn)是Delphi的開(kāi)發(fā)環(huán)境和開(kāi)發(fā)方法,通過(guò)實(shí)例介紹了Delphi的程序設(shè)計(jì)和上機(jī)操作的一般

19、步驟。圖1-10 工程運(yùn)行界面圖第第2章章 Delphi語(yǔ)法基礎(chǔ)語(yǔ)法基礎(chǔ) 2.1 保留字與標(biāo)識(shí)符保留字與標(biāo)識(shí)符2.1.1 標(biāo)識(shí)符標(biāo)識(shí)符標(biāo)識(shí)符是Object Pascal語(yǔ)言中各種成分的名稱(chēng),這些成分包括變量(Var)、常量( C o n s t ) 、 類(lèi) 型 ( T y p e ) 、 過(guò) 程(Procedure)、函數(shù)(Function)、方法(Method)、單元(Unit)等。 標(biāo)識(shí)符可以分為三類(lèi):標(biāo)準(zhǔn)標(biāo)識(shí)符、自定義標(biāo)識(shí)符和限定標(biāo)識(shí)符。1標(biāo)準(zhǔn)標(biāo)識(shí)符 (1)標(biāo)準(zhǔn)常量,如False、Maxint、True等; (2)標(biāo)準(zhǔn)類(lèi)型,如Boolean、Char、Real等; (3)標(biāo)準(zhǔn)函數(shù),如Si

20、n、Cos、Abs、Arctan等; (4)標(biāo)準(zhǔn)過(guò)程,如Dispose、Get、New、Pack、Put等; (5)標(biāo)準(zhǔn)文件,如Input、Output等。 2自定義標(biāo)識(shí)符程序員根據(jù)程序設(shè)計(jì)的需要,自己定義的常量、變量、類(lèi)型、函數(shù)、過(guò)程等所取的名字。自定義標(biāo)識(shí)符可以由任意長(zhǎng)的一個(gè)不帶空格的字符串組成,包括字母AZ 、az 、數(shù)字09 和下劃線(xiàn)“_”等。定義標(biāo)識(shí)符需要遵循以下規(guī)則: (1)標(biāo)識(shí)符不區(qū)分大小寫(xiě); (2)標(biāo)識(shí)符只能以字母或下劃線(xiàn)開(kāi)頭,不能以數(shù)字開(kāi)頭; (3)標(biāo)識(shí)符可任意長(zhǎng)度,但只有前225個(gè)字符有效; (4)標(biāo)識(shí)符中間不允許有空格; (5)不允許使用Object Pascal語(yǔ)言的保

21、留字作為標(biāo)識(shí)符。 3限定標(biāo)識(shí)符在Delphi程序中可引用多個(gè)單元,而各個(gè)單元中全局變量、函數(shù)、過(guò)程等可能會(huì)同名,在引用時(shí)需用限定標(biāo)識(shí)符來(lái)區(qū)分它們: Var Y:real; Y:=System.cos(pi);其中System稱(chēng)為限定符 ,而System.cos稱(chēng)為限定標(biāo)識(shí)符。 2.1.2 保留字保留字保留字由系統(tǒng)規(guī)定具有特定意義,不能被重新定義或作他用,定義了65個(gè)保留字 。注意: 1單詞at和on具有特殊含義,不要與它們同名。 2保留字和Object Pascal一樣不區(qū)分大小寫(xiě)。 3Delphi集成開(kāi)發(fā)環(huán)境的代碼編輯器中,黑體顯示保留字和指令字,定義時(shí)不要與這些黑體字一樣。 Object

22、Pascal的保留字 and array as asm begin case class const constructor destructor dispinterface div do downto else end except exports file finalization finally for function goto if implementation in inherited initialization inline interface is label library mod nil not object of or out packed procedure prog

23、ram property raise record repeat resourcestring set shl shr string then threadvar to try type unit until uses var while with xor 2.1.3 指令符指令符指令字只在特殊的程序位置、或當(dāng)上下文關(guān)聯(lián)時(shí)有意義的程序區(qū)段有自己特殊的意義,而在其他場(chǎng)合,用戶(hù)可對(duì)其重新定義,即可將其定義為標(biāo)識(shí)符,Object Pascal不會(huì)指示出錯(cuò),當(dāng)用戶(hù)重新定義這些指令字后,在作用域內(nèi)它們就失去了原來(lái)的意義了。Object Pascal中規(guī)定的指令符有39個(gè)說(shuō)明:指令符private、pro

24、tected、public、published和automated在定義對(duì)象類(lèi)型時(shí)也作為保留字,而在其他場(chǎng)合則作為指令符。2.1.4 注釋注釋注釋可增加程序的可讀性和可維護(hù)性。 Object Pascal語(yǔ)言中注釋有三種形式: 1組合符號(hào)“”與“”的成對(duì)使用表示它們之間的內(nèi)容為注釋部分。 2組合符號(hào)“( *”與“* )”的成對(duì)使用表示它們之間的內(nèi)容為注釋部分。 3符號(hào)“/ ”的單個(gè)使用表示所在行的該符號(hào)之后的內(nèi)容為注釋。 注意: 1注釋符“”與“”、“( *”與“* )”在使用時(shí)不支持注釋的嵌套,而且必須成對(duì)使用。 2對(duì)于單行和少量幾行注釋使用符號(hào)“/ ”,對(duì)于大塊注釋使用“”和“”或“( *

25、”和“* )”。 3有時(shí)可利用注釋在代碼中形成一個(gè)醒目標(biāo)志。 4在注釋符“”或“( *”后緊接著是一個(gè)美元符號(hào)“$”時(shí),表示該句是一個(gè)編譯器指令,它與普通的注釋不同,通常用來(lái)對(duì)編譯過(guò)程進(jìn)行設(shè)置。2.2 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型描述客觀(guān)事物的數(shù)、字符以及所有能輸入到計(jì)算機(jī)中并被計(jì)算機(jī)程序加工處理的符號(hào)的集合稱(chēng)為數(shù)據(jù)。 數(shù)據(jù)類(lèi)型可以分為標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型及高級(jí)數(shù)據(jù)類(lèi)型等,還可以通過(guò)數(shù)據(jù)類(lèi)型聲明語(yǔ)句在預(yù)定義數(shù)據(jù)類(lèi)型的基礎(chǔ)上定義新數(shù)據(jù)類(lèi)型。說(shuō)明: 1標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型屬于Object Pascal內(nèi)部約定的數(shù)據(jù)類(lèi)型,無(wú)需定義就可以直接使用。 2高級(jí)數(shù)據(jù)類(lèi)型體現(xiàn)了特殊的數(shù)據(jù)結(jié)構(gòu),在使用之前必須由用戶(hù)自己定義。 3數(shù)據(jù)類(lèi)型中

26、整型、字符型、布爾型、枚舉型和子界型被稱(chēng)為順序類(lèi)型,其取值是一個(gè)有序集合,每一個(gè)可能取值都與順序有關(guān)。2.2.1 數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù)可分為整數(shù)類(lèi)型和實(shí)數(shù)類(lèi)型。1.整數(shù)類(lèi)型 整數(shù)類(lèi)型是存儲(chǔ)整數(shù)數(shù)據(jù)的類(lèi)型 ,分為基本整形和一般整形。基本整形:短整型 、小整型 、長(zhǎng)整型 、64位整型 、字節(jié)型 、字型 、長(zhǎng)字型 一般整形:整型 、序數(shù)型 注意:盡量使用一般整型Integer和Cardinal,可以最大限度發(fā)揮CPU和操作系統(tǒng)的性能。 2.實(shí)數(shù)類(lèi)型實(shí)數(shù)類(lèi)型是存儲(chǔ)實(shí)數(shù)數(shù)據(jù)的類(lèi)型 ,分為基本實(shí)型和一般實(shí)型?;緦?shí)型:?jiǎn)尉葘?shí)型 、擴(kuò)展型 、雙精度實(shí)型 、貨幣型 一般實(shí)型:實(shí)型 注意:Real

27、類(lèi)型與Double 類(lèi)型完全等價(jià)。Currency類(lèi)型至少有4位有效的小數(shù)位。 2.2.2 字符型數(shù)據(jù)字符型數(shù)據(jù) Object Pascal中的字符型數(shù)據(jù)可以分為字符型和字符串型2類(lèi)7種。1.字符類(lèi)型Object Pascal包括3種形式的字符型數(shù)據(jù) 類(lèi)型類(lèi)型 名稱(chēng)名稱(chēng) 字節(jié)數(shù)字節(jié)數(shù) 取值范圍取值范圍 Ansi字符型 AnsiChar 擴(kuò)展ANSI字符集 寬字符型 WideChar UniCode字符集 字符型 Char ()擴(kuò)展ANSI字符集 說(shuō)明:(1)前2種為基本字符類(lèi)型后一種為一般類(lèi)型。(2)Char與AnsiChar完全等價(jià),但Char常用。 2.字符串類(lèi)型字符串類(lèi)型是存儲(chǔ)字符串?dāng)?shù)據(jù)

28、的類(lèi)型 ,Object Pascal包括了4種形式的字符串型數(shù)據(jù) 類(lèi)型類(lèi)型 名稱(chēng)名稱(chēng) 最大長(zhǎng)度最大長(zhǎng)度 所需內(nèi)存空間所需內(nèi)存空間 短字符串型 ShortString 255個(gè)字符 2256B 長(zhǎng)字符串型 AnsiString 231個(gè)字符 42GB 寬字符串型 WideString 230個(gè)字符 42GB 字符串型 String 231個(gè)字符 42GB 說(shuō)明:()AnsiString類(lèi)型的定義是動(dòng)態(tài)分配的,內(nèi)容由AnsiChar類(lèi)型的字符組成,長(zhǎng)度僅受可用內(nèi)存空間的限制,以空字符Nul作為結(jié)尾。()String字符串類(lèi)型,既可以是ShortString類(lèi)型也可以是AnsiString類(lèi)型,默認(rèn)

29、定義是AnsiString類(lèi)型。2.2.3 布爾型數(shù)據(jù)布爾型數(shù)據(jù)布爾型數(shù)據(jù)用于關(guān)系運(yùn)算和條件語(yǔ)句的邏輯運(yùn)算,包括4種形式的布爾型數(shù)據(jù)。 說(shuō)明:(1)后3種類(lèi)型是為了兼容其他語(yǔ)言而設(shè)置的,編程時(shí)應(yīng)盡量使用Boolean類(lèi)型。(2)Boolean取值為False和True兩個(gè)符號(hào)常量。類(lèi)型類(lèi)型 名稱(chēng)名稱(chēng) 字節(jié)數(shù)字節(jié)數(shù) 取值取值 布爾型 Boolean 只能為0(False)或1(True) 字節(jié)布爾型 ByteBool 0(False)或非0(True) 寬布爾型 WordBool 0(False)或非0(True) 長(zhǎng)布爾型 LongBool 0(False)或非0(True) 2.3 常量與變

30、量常量與變量2.3.1 常量常量常量即在程序的執(zhí)行過(guò)程中其值不能改變的量。 常量有兩種,一種是常量值本身,也稱(chēng)為直接常量;另一種是要用聲明定義的標(biāo)識(shí)符表示的常量,也稱(chēng)為聲明常量。聲明常量又可以分為符號(hào)常量和類(lèi)型常量。1.直接常量直接常量是指在程序中直接引用的常數(shù),如整型常數(shù)、實(shí)型常數(shù)、字符型常數(shù)、字符串型常數(shù)和布爾型常數(shù)。 2.聲明常量(1)符號(hào)常量 在程序中,某一個(gè)常數(shù)反復(fù)多次出現(xiàn),可以定義一個(gè)標(biāo)識(shí)符來(lái)代表該常數(shù),這個(gè)標(biāo)識(shí)符就是符號(hào)常量,其值在定義后不會(huì)改變。也稱(chēng)純常量。定義符號(hào)常量使用常量說(shuō)明語(yǔ)句,其語(yǔ)法格式為:Const =; =;其中Const是保留字,表示常量定義段開(kāi)始 。注意:保留

31、字Const可單獨(dú)一行也可與常量一行。不能在程序中給常量另行賦值,否則將導(dǎo)致語(yǔ)法錯(cuò)誤。Delphi由常量值判斷常量名屬于哪種類(lèi)型。(2)類(lèi)型常量類(lèi)型常量用于保存數(shù)組、記錄、過(guò)程以及指針等類(lèi)型的值,不能出現(xiàn)在常量表達(dá)式中。在默認(rèn)的編譯器狀態(tài)下,類(lèi)型常量的值可改變,但當(dāng)在程序中加入編譯命令$j-時(shí),則類(lèi)型常量的值在運(yùn)行期就無(wú)法改變。 聲明類(lèi)型常量的語(yǔ)法規(guī)則為:Const :=;其中類(lèi)型是除文件型和可變型的所有類(lèi)型,常量值可以是和類(lèi)型相應(yīng)的常量表達(dá)式。 2.3.2 變量變量1.變量的聲明變量在單元、函數(shù)或過(guò)程的聲明部分進(jìn)行聲明,聲明的位置決定了變量的作用域。聲明包括兩部分:變量名和它所屬的類(lèi)型,變量

32、聲明的語(yǔ)法格式為:Var :;:;當(dāng)多個(gè)變量具有相同數(shù)據(jù)類(lèi)型時(shí),格式如下:Var ,:;其中,Var是保留字,表示變量聲明段的開(kāi)始;同類(lèi)型的可超過(guò)一個(gè),間用“,”分隔;可以是基本數(shù)據(jù)類(lèi)型或是由用戶(hù)定義的高級(jí)數(shù)據(jù)類(lèi)型; 2.變量的使用一旦聲明了一個(gè)變量應(yīng)及時(shí)對(duì)它進(jìn)行初始化,最簡(jiǎn)單方法就是給變量賦值,在表達(dá)式中使用變量。 2.4 運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式按照操作數(shù)數(shù)目的多少來(lái)分,運(yùn)算符分為下面兩類(lèi):?jiǎn)文窟\(yùn)算符和雙目運(yùn)算符。單目運(yùn)算符一般放在操作對(duì)象的前面,雙目運(yùn)算符都放在兩個(gè)操作數(shù)之間。表達(dá)式是表示某個(gè)求值規(guī)則的運(yùn)算公式,由運(yùn)算符和配對(duì)的圓括號(hào)將常量、變量、函數(shù)、對(duì)象等操作數(shù)以合理的形式組合而

33、成。 2.4.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式1.算術(shù)運(yùn)算符算術(shù)運(yùn)算符對(duì)浮點(diǎn)數(shù)和整數(shù)進(jìn)行加、減、乘、除和取模運(yùn)算,取正“+”和取負(fù)“-”是單目運(yùn)算符,其他均為雙目運(yùn)算符。 說(shuō)明:(1)+、-、*運(yùn)算中,參加運(yùn)算的數(shù)可以是整型和實(shí)型,結(jié)果自動(dòng)向精度高的類(lèi)型轉(zhuǎn)化。(2)參加除法運(yùn)算“/”,結(jié)果都是實(shí)型的商。(3)參加整數(shù)除法“Div”和求余運(yùn)算“Mod”的數(shù)必須是整型,結(jié)果也是整型數(shù),符號(hào)與被除數(shù)的符號(hào)相同,小數(shù)部分被舍去。(4)在表達(dá)式a/b、a Div b和a Mod b中,如果b的值為0,將會(huì)觸發(fā)一個(gè)錯(cuò)誤。 2.算術(shù)運(yùn)算符的優(yōu)先級(jí) 同級(jí)運(yùn)算自左至右,如果含有括號(hào),則先計(jì)算括號(hào)

34、內(nèi)表達(dá)式的值。3.算術(shù)表達(dá)式 將數(shù)學(xué)式改寫(xiě)為算術(shù)表達(dá)式,考慮三個(gè)問(wèn)題:一是語(yǔ)法,二是優(yōu)先級(jí),三是類(lèi)型。 優(yōu)先順序優(yōu)先順序 運(yùn)算符運(yùn)算符 +、-(取正、取負(fù)) *、/(法、除法) Div、Mod(整除、求余) +、(加法、減法) 說(shuō)明:(1)數(shù)學(xué)式中省略的運(yùn)算符和表示函數(shù)參數(shù)的括號(hào)必須添加上去 (2)必須注意優(yōu)先級(jí)的處理 ,恰當(dāng)利用標(biāo)準(zhǔn)函數(shù) ,注意數(shù)據(jù)類(lèi)型。 2.4.2 邏輯運(yùn)算符與布爾表達(dá)式邏輯運(yùn)算符與布爾表達(dá)式邏輯運(yùn)算符可分為布爾運(yùn)算符、位運(yùn)算符和關(guān)系運(yùn)算符。1.布爾運(yùn)算符只能對(duì)兩個(gè)布爾型操作數(shù)進(jìn)行運(yùn)算,結(jié)果仍為布爾型,True或False。其中,NOT是求“非”,為一元運(yùn)算符 ; AND是

35、求“與”,OR是求“或”,XOR是求“異或”,均為二元運(yùn)算符 。 2.位運(yùn)算符運(yùn)算符運(yùn)算符 操作舉例操作舉例操作數(shù)類(lèi)型操作數(shù)類(lèi)型 結(jié)果類(lèi)型結(jié)果類(lèi)型 功能說(shuō)明功能說(shuō)明 NOT NOT x integer integer 即按二進(jìn)制形式將每位求反AND a AND b integer integer 將兩者相對(duì)應(yīng)的位進(jìn)行AND運(yùn)算OR a OR b integer integer 將兩者相對(duì)應(yīng)的位進(jìn)行OR運(yùn)算XOR a XOR b integer integer 將兩者相對(duì)應(yīng)的位進(jìn)行取XOR運(yùn)算,兩者不同時(shí)結(jié)果為1 SHL a SHL b integer integer 將a的二進(jìn)制值向左移動(dòng)b位

36、,左移一位相當(dāng)于乘2 SHR a SHR b integer integer 將a的二進(jìn)制向右移動(dòng)b位,右移一位相當(dāng)于除2 注意:右移操作時(shí)原值的低位丟失,高位補(bǔ)0;左移操作時(shí)原值的高位丟失,低位補(bǔ)0。 3.關(guān)系運(yùn)算符關(guān)系符關(guān)系符 操作操作 操作數(shù)類(lèi)型操作數(shù)類(lèi)型 結(jié)果類(lèi)型結(jié)果類(lèi)型 = 等于 簡(jiǎn)單類(lèi)型,字符串或可變類(lèi)型,類(lèi),類(lèi)引用,指針,集合類(lèi)型 Boolean 不等于 簡(jiǎn)單類(lèi)型,字符串或可變類(lèi)型,類(lèi),類(lèi)引用,指針,集合類(lèi)型Boolean 大于 簡(jiǎn)單類(lèi)型,字符串或可變類(lèi)型 Boolean = 大于等于 簡(jiǎn)單類(lèi)型,字符串或可變類(lèi)型 Boolean 4.布爾表達(dá)式布爾表達(dá)式由布爾運(yùn)算符和布爾類(lèi)型的操

37、作數(shù)所組成,包括關(guān)系運(yùn)算表達(dá)式和運(yùn)算結(jié)果為布爾類(lèi)型的函數(shù),如Odd(x)、FileExists(x)、等。但位運(yùn)算符的結(jié)果是整數(shù)類(lèi)型,不能直接作為布爾操作數(shù)。2.4.3 字符串運(yùn)算符 連接運(yùn)算符“+”主要用于連接兩個(gè)或更多的字符串。最簡(jiǎn)單的字符串表達(dá)式是字符常量、字符串常量、字符變量、字符串變量或字符函數(shù)的引用。字符串表達(dá)式格式為: +| 當(dāng)兩個(gè)字符串用連接運(yùn)算符連接起來(lái)后,第二個(gè)字符串直接添加到第一個(gè)字符串的尾部,結(jié)果是包含兩個(gè)源字符串全部?jī)?nèi)容的新字符串。如果要把多個(gè)字符串連接起來(lái),每?jī)蓚€(gè)字符串之間都要用“+”號(hào)分隔。 2.4.4 運(yùn)算符的優(yōu)先級(jí)優(yōu)先順序優(yōu)先順序 運(yùn)算符運(yùn)算符 分類(lèi)描述分類(lèi)描

38、述 1(取地址),NOT,- 一元運(yùn)算符 2*,/,DIV,MOD,AND,SHL,SHR 乘除及類(lèi)型強(qiáng)制轉(zhuǎn)換運(yùn)算符 3+,OR,XOR 加減運(yùn)算符 4=, =,in,is 關(guān)系、集合成員及類(lèi)型比較運(yùn)算符 2.5常用系統(tǒng)函數(shù)與過(guò)程常用系統(tǒng)函數(shù)與過(guò)程2.5.1 數(shù)值運(yùn)算函數(shù) Delphi的數(shù)值運(yùn)算函數(shù)包含了常用的數(shù)學(xué)函數(shù)(如三角函數(shù)、對(duì)數(shù)函數(shù)等)和適合計(jì)算機(jī)數(shù)據(jù)處理的其他函數(shù)(如求數(shù)組中的最大值、求三角形的斜邊長(zhǎng)等)。2.5.2 字符處理函數(shù) 對(duì)字符的處理主要包括:大小寫(xiě)轉(zhuǎn)換、比較先后順序、合并、查找、截取、插入、求長(zhǎng)度以及類(lèi)型轉(zhuǎn)換等。 2.5.3 日期時(shí)間函數(shù) 調(diào)用日期時(shí)間函數(shù)可對(duì)日期和時(shí)間進(jìn)

39、行處理 2.5.4 順序類(lèi)型函數(shù)1.順序類(lèi)型 順序類(lèi)型指整型、字符型、布爾型、枚舉型、子界型5種數(shù)據(jù)類(lèi)型,如下所述: (1)整數(shù)的的序數(shù)是其自身; (2)字符的序數(shù)是其ASCII 碼; (3)布爾型數(shù)據(jù):False序數(shù)為0,True為1; (4)枚舉型第一個(gè)數(shù)據(jù)序數(shù)為0,其余類(lèi)推; (5)子界型第一個(gè)數(shù)據(jù)序數(shù)為1,其余類(lèi)推。 除第一個(gè)序數(shù),每一個(gè)都有一個(gè)前趨值;除最后一個(gè)序數(shù),每一個(gè)都有一個(gè)后繼值。2.順序函數(shù) 2.6語(yǔ)句語(yǔ)句2.6.1 語(yǔ)句的基本概念語(yǔ)句的基本概念按執(zhí)行時(shí)間可分為:聲明語(yǔ)句和可執(zhí)行語(yǔ)句。順序函數(shù)順序函數(shù) 引用形式引用形式 函數(shù)功能描述函數(shù)功能描述 序數(shù)函數(shù) Ord(x); 返

40、回?cái)?shù)據(jù)x的序數(shù) 前趨函數(shù) Pred(x); 返回?cái)?shù)據(jù)x的前趨值。如果將Pred函數(shù)用于第一個(gè)數(shù)據(jù),就可能產(chǎn)生一個(gè)編譯時(shí)的錯(cuò)誤 后繼函數(shù) Succ(x); 返回?cái)?shù)據(jù)x的后繼值。如果將Succ函數(shù)用于最后一個(gè)數(shù)據(jù),就可能產(chǎn)生一個(gè)編譯時(shí)的錯(cuò)誤 首序數(shù)函數(shù) Low(x); 返回順序型數(shù)據(jù)x取值集合中的第一個(gè)值(序數(shù)最?。?。它還可以返回?cái)?shù)組的第一個(gè)元素 末序數(shù)函數(shù) High(x); 返回順序型數(shù)據(jù)x取值集合中的最末一個(gè)值(序數(shù)最大),它還可以返回?cái)?shù)組的最末一個(gè)元素 聲明語(yǔ)句包括單元說(shuō)明語(yǔ)句、類(lèi)型說(shuō)明語(yǔ)句、變量說(shuō)明語(yǔ)句、過(guò)程說(shuō)明語(yǔ)句、函數(shù)說(shuō)明語(yǔ)句和程序區(qū)段標(biāo)識(shí)語(yǔ)句等。 可執(zhí)行語(yǔ)句包括賦值語(yǔ)句、運(yùn)行控制語(yǔ)句

41、和結(jié)構(gòu)控制語(yǔ)句等。 按語(yǔ)句的描述形式,可分為簡(jiǎn)單語(yǔ)句、結(jié)構(gòu)語(yǔ)句和復(fù)合語(yǔ)句等。 簡(jiǎn)單語(yǔ)句只含有一個(gè)語(yǔ)句定義符或特殊標(biāo)志;結(jié)構(gòu)語(yǔ)句往往含有多于一個(gè)的語(yǔ)句動(dòng)詞;復(fù)合語(yǔ)句則是由begin和end括起來(lái)的若干個(gè)簡(jiǎn)單語(yǔ)句、結(jié)構(gòu)語(yǔ)句和復(fù)合語(yǔ)句,允許復(fù)合語(yǔ)句多層嵌套,或?yàn)榭眨簿褪窃赽egin和end之間沒(méi)有其他語(yǔ)句。 2.6.2 常見(jiàn)聲明語(yǔ)句常見(jiàn)聲明語(yǔ)句1.標(biāo)號(hào)聲明語(yǔ)句 標(biāo)號(hào)聲明語(yǔ)句即用一個(gè)整型數(shù)來(lái)表示程序的某個(gè)執(zhí)行語(yǔ)句,一行標(biāo)號(hào)聲明語(yǔ)句可以同時(shí)聲明幾個(gè)標(biāo)號(hào),其用法如下所示: label Aa,Ab; var I:integer; begin /語(yǔ)句 if(I=0) then goto Aa; /語(yǔ)句 Aa

42、:begin /語(yǔ)句 end; end;2.類(lèi)型聲明語(yǔ)句在Object Pascal中,所有的變量必須是某種特定的數(shù)據(jù)類(lèi)型,類(lèi)型決定了它所能包含的數(shù)值和可進(jìn)行的操作,用類(lèi)型聲明語(yǔ)句可以定義新的數(shù)據(jù)類(lèi)型。例如:TypeTmyDim:Array1.10,1.5 of Double;3.過(guò)程聲明語(yǔ)句過(guò)程可以被看成一段小程序,用來(lái)實(shí)現(xiàn)某種特定的目標(biāo),在完整的程序中它被當(dāng)作一個(gè)語(yǔ)句來(lái)執(zhí)行。在建立過(guò)程之前應(yīng)先聲明。procedure NumString(N:Integr;Var S:string);4.函數(shù)聲明語(yǔ)句函數(shù)與過(guò)程相似,主要區(qū)別在于函數(shù)必須有返回值,函數(shù)的聲明參見(jiàn)下面的語(yǔ)句,其中,最后的Real

43、表示函數(shù)的返回?cái)?shù)據(jù)類(lèi)型。Function Power(X:Real;Y:Integer):Real;2.6.3 賦值語(yǔ)句和程序的順序結(jié)構(gòu)賦值語(yǔ)句和程序的順序結(jié)構(gòu)1.賦值語(yǔ)句賦值語(yǔ)句的語(yǔ)法格式為::=;2.類(lèi)型兼容類(lèi)型兼容是指數(shù)據(jù)類(lèi)型不完全相同的量之間能進(jìn)行的運(yùn)算和賦值操作。 3.利用賦值語(yǔ)句給對(duì)象屬性賦值由于屬性總是歸屬于對(duì)象才有實(shí)際意義,所以引用屬性時(shí)用符號(hào)“.”來(lái)連接表示其隸屬關(guān)系。如組件Editl的字體的顏色屬性表示為:Editl.Font.Color。 4.順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡(jiǎn)單、最常用的結(jié)構(gòu)。在該結(jié)構(gòu)中,各操作塊按照出現(xiàn)的先后順序依次執(zhí)行,不產(chǎn)生程序流程的其他轉(zhuǎn)移。它是任何程序的主

44、體結(jié)構(gòu),即使在選擇結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中,也常以順序結(jié)構(gòu)作為其子結(jié)構(gòu)。通常由若干個(gè)賦值語(yǔ)句或其他簡(jiǎn)單語(yǔ)句構(gòu)成 。2.6.4 條件語(yǔ)句和程序的選擇結(jié)構(gòu)條件語(yǔ)句和程序的選擇結(jié)構(gòu)實(shí)現(xiàn)選擇結(jié)構(gòu)的是IF語(yǔ)句和Case語(yǔ)句,這兩種語(yǔ)句又稱(chēng)條件語(yǔ)句,條件語(yǔ)句的功能就是根據(jù)表達(dá)式的值有選擇地執(zhí)行一組語(yǔ)句。 1.if語(yǔ)句通過(guò)條件的布爾表達(dá)式值選擇執(zhí)行路徑。if then else ;if語(yǔ)句分為簡(jiǎn)單條件語(yǔ)句和復(fù)合條件語(yǔ)句。簡(jiǎn)單條件語(yǔ)句的中不包含其他的條件語(yǔ)句 。如果在If語(yǔ)句格式中的或本身又是一個(gè)If語(yǔ)句,則稱(chēng)為If語(yǔ)句的嵌套,嵌套的If語(yǔ)句又被稱(chēng)為復(fù)合條件語(yǔ)句。 2.Case語(yǔ)句Case語(yǔ)句用來(lái)實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。

45、Case語(yǔ)句描述了多路擇一的功能,它根據(jù)“選擇器表達(dá)式”的值決定執(zhí)行相應(yīng)的語(yǔ)句。Case語(yǔ)句的語(yǔ)法格式為: case of:;:;else ;end;說(shuō)明:的值必須是順序類(lèi)型 。2.6.5 循環(huán)語(yǔ)句和程序的循環(huán)結(jié)構(gòu)循環(huán)語(yǔ)句和程序的循環(huán)結(jié)構(gòu)從某處開(kāi)始有規(guī)律地反復(fù)執(zhí)行某一程序塊的現(xiàn)象稱(chēng)為“循環(huán)”,完成這一功能的程序結(jié)構(gòu)為“循環(huán)結(jié)構(gòu),”而其中重復(fù)執(zhí)行的程序塊稱(chēng)為“循環(huán)體”。循環(huán)結(jié)構(gòu)語(yǔ)句有3種,它們分別是:While 語(yǔ)句、Repeat語(yǔ)句以及For語(yǔ)句。 1.While語(yǔ)句While語(yǔ)句屬于前測(cè)型循環(huán)結(jié)構(gòu)。首先判斷條件,根據(jù)條件決定是否執(zhí)行循環(huán),執(zhí)行循環(huán)的最少次數(shù)為0。其語(yǔ)法格式為: while d

46、o ;說(shuō)明:可在(循環(huán)體)中任何位置Break語(yǔ)句來(lái)終止While 循環(huán),Break 語(yǔ)句通常位于IF語(yǔ)句后??稍谘h(huán)體中任何位置放置Continue語(yǔ)句,以便在整個(gè)循環(huán)體沒(méi)有執(zhí)行完就重新判斷(條件),以決定是否開(kāi)始新的循環(huán)。Continue語(yǔ)句通常位于IF 語(yǔ)句之后。 2.Repeat語(yǔ)句Repeat語(yǔ)句屬于后測(cè)型循環(huán)結(jié)構(gòu),首先執(zhí)行循環(huán)體,然后判斷條件,根據(jù)條件決定是否繼續(xù)執(zhí)行循環(huán),執(zhí)行循環(huán)的最少次數(shù)為1。 repeat until ;3.For語(yǔ)句若知道要執(zhí)行多少次循環(huán)時(shí),則使用For循環(huán)結(jié)構(gòu)。For循環(huán)使用一個(gè)循環(huán)變量,每重復(fù)一次循環(huán)之后,循環(huán)變量的值就會(huì)自動(dòng)增加或者減少。For語(yǔ)句的語(yǔ)

47、法格式為: for =to|downto do ;說(shuō)明:只能是順序類(lèi)型,TO表示計(jì)數(shù)器遞增,DownTo表示計(jì)數(shù)器遞減。 4.循環(huán)的嵌套循環(huán)語(yǔ)句的循環(huán)體中僅包含了簡(jiǎn)單語(yǔ)句,稱(chēng)為單重循環(huán)。 如果在循環(huán)體中又包含了另一個(gè)循環(huán)結(jié)構(gòu),則稱(chēng)為多重循環(huán),又稱(chēng)為循環(huán)的嵌套。在循環(huán)體中的嵌套稱(chēng)為內(nèi)循環(huán),外部的循環(huán)稱(chēng)為外循環(huán)。多重循環(huán)嵌套根據(jù)循環(huán)結(jié)構(gòu)嵌套層數(shù)可以分為二重循環(huán)、三重循環(huán)等。 5.循環(huán)的中斷特殊情況下,需要中斷正在執(zhí)行的循環(huán),可以使用break語(yǔ)句或Continue語(yǔ)句??梢苑旁谘h(huán)體的任意位置,通常放在If語(yǔ)句之后。 執(zhí)行Break語(yǔ)句的結(jié)果是:跳出整個(gè)循環(huán),執(zhí)行之后的語(yǔ)句。執(zhí)行Continue語(yǔ)

48、句的結(jié)果是:跳出本輪循環(huán),然后判斷循環(huán)條件是否成立,再?zèng)Q定是否開(kāi)始新一輪的循環(huán)。小結(jié)小結(jié)本章主要介紹了Object Pascal的最基本的語(yǔ)法,主要包括基本詞法、基本數(shù)據(jù)類(lèi)型、常量與變量、運(yùn)算符與表達(dá)式、常用函數(shù)與過(guò)程、語(yǔ)句等。第3章 常用組件 Delphi 7.0的組件板上含有27個(gè)選項(xiàng)卡,總共包括350多個(gè)組件,如圖所示 :3.1 窗體窗體 3.1.1 Form組件組件 窗體是應(yīng)用程序的操作界面,是放置組件的基礎(chǔ)。窗體由標(biāo)題欄、工作區(qū)和邊界組成。 圖3-1 組件板和選項(xiàng)卡運(yùn)行界面圖1. Form的主要屬性窗體組件(TForm)在運(yùn)行時(shí)表現(xiàn)為一個(gè)窗體,窗體是一個(gè)容器構(gòu)件,它可以包含其他種類(lèi)的

49、構(gòu)件,并協(xié)同完成應(yīng)用程序的整體功能。窗體由屬性、事件和方法組成。(1)BorderIcons屬性 用來(lái)制定窗體標(biāo)題欄上的圖標(biāo) (2)BorderStyle屬性 Borderstyle屬性用來(lái)設(shè)置窗體的外觀(guān)和邊框 (3)Name屬性 Name屬性唯一地標(biāo)識(shí)對(duì)象,取值不能為空,若工程中有多個(gè)窗體,名稱(chēng)不能相同。 (4)Caption屬性用來(lái)指定窗體標(biāo)題欄中說(shuō)明文字,可以為空。(5)Font屬性Font屬性用來(lái)設(shè)置窗體中文字的字體、顏色和字號(hào)等等,其中Font.style屬性為集合型。(6)FormStyle屬性FormStyle屬性用來(lái)指定窗體的類(lèi)型。從窗體類(lèi)型的角度來(lái)看,Windows環(huán)境中的應(yīng)

50、用程序可以分為以下三類(lèi)。第一類(lèi):多文檔界面(MDI)應(yīng)用程序一般這種應(yīng)用程序具有一個(gè)父級(jí)窗口和多個(gè)子窗口,可以同時(shí)打開(kāi)多個(gè)文檔,分別在多個(gè)子窗口中顯示。 第二類(lèi):?jiǎn)挝臋n界面(SDI)應(yīng)用程序這種應(yīng)用程序同時(shí)只能打開(kāi)一個(gè)文檔。第三類(lèi):對(duì)話(huà)框應(yīng)用程序這種應(yīng)用程序的主界面基于一個(gè)對(duì)話(huà)框類(lèi)型的窗體。 (7)Icon屬性Icon屬性用來(lái)指定標(biāo)題欄中顯示的圖標(biāo)。 (8)Position屬性Position屬性用來(lái)描述窗體大小和顯示位置。 (9)WindowsState屬性WindowsState屬性來(lái)描述窗體顯示狀態(tài) 。2.TForm 的事件 窗體是一個(gè)可視化的組件,包括外部事件和內(nèi)部事件。 3.窗體的方

51、法一些常用方法(過(guò)程或函數(shù)) 有:Create 、Close 、CloseQuery 、release 、Show 、ShowModal 、Print 。4窗體的創(chuàng)建 創(chuàng)建窗體的方法分為兩種:靜態(tài)創(chuàng)建和動(dòng)態(tài)創(chuàng)建。所謂靜態(tài)創(chuàng)建窗體是指再工程的編輯、設(shè)計(jì)時(shí)創(chuàng)建新窗體;而動(dòng)態(tài)創(chuàng)建窗體是指在工程的運(yùn)行時(shí)通過(guò)代碼生成窗體。 (1)靜態(tài)創(chuàng)建新窗體通過(guò)集成開(kāi)發(fā)環(huán)境中的【File】|【New】|【Application】菜單,創(chuàng)建一個(gè)應(yīng)用程序, 此時(shí)自動(dòng)生成一個(gè)窗體Form1,再打開(kāi)【File】|【New】|【Form】菜單生成一個(gè)窗體Form2。在Form1中添加兩個(gè)Button、1個(gè)Label組件,F(xiàn)or

52、m2中添加1個(gè)Label組件,即可完成界面設(shè)計(jì)。 添加代碼:procedure TForm1.Button1Click(Sender: TObject); /創(chuàng)建按鈕事件begin /關(guān)鍵分析 form2.show; /調(diào)用Show方法顯示Form2窗體end;procedure TForm1.Button2Click(Sender: TObject);begin form1.Close;end;程序分析:編譯上述工程時(shí),系統(tǒng)會(huì)彈出出錯(cuò)提示信息,單擊“Yes”按鈕,Delphi將自動(dòng)在Unit1單元中添加對(duì)Unit2單元的引用。 (2)動(dòng)態(tài)態(tài)創(chuàng)建新窗體在需要某個(gè)窗體時(shí),臨時(shí)創(chuàng)建它,使用后將其立

53、即釋放,這種稱(chēng)為窗體的動(dòng)態(tài)創(chuàng)建。 3.1.2彈出對(duì)話(huà)框窗體彈出對(duì)話(huà)框窗體Delphi提供內(nèi)部對(duì)話(huà)框有兩種。第一種:信息輸出對(duì)話(huà)框Showmessage過(guò)程、ShowMessageFmt過(guò)程、MessageDlg函數(shù)、MessageDlgPos函數(shù)、CreateMessageDialog函數(shù)。 第二種:信息輸入對(duì)話(huà)框InputBox函數(shù)、InputQuery函數(shù)。1ShowMessage過(guò)程 其語(yǔ)法格式為:ShowMessage(); 2ShowMessageFmt過(guò)程的語(yǔ)法格式為: ShowMessageFmt(,);3MessageDlg函數(shù)函數(shù)其語(yǔ)法格式為:其語(yǔ)法格式為:=MessageD

54、lg(,HelpCtx); 4MessageDlgPos函數(shù) 其語(yǔ)法格式為:=MessageDlgPos(,HelpCtx,X,Y); 可以指定對(duì)話(huà)框的顯示位置坐標(biāo):X,Y。 5CreatMessageDialog函數(shù)其語(yǔ)法格式為:=CreatMessageDialog (,);6InputBox函數(shù)函數(shù)其語(yǔ)法格為:其語(yǔ)法格為:=InputBox (,);7InputQuery函數(shù)其語(yǔ)法格式為:=InputQuery (,);3.2 輸入顯示類(lèi)組件輸入顯示類(lèi)組件3.2.1 Edit組件編輯框(Edit)是一種通用組件,既可以輸入文本,又可以顯示文本,編輯框組件位于Standard組件板中。 圖

55、3-7編輯框Edit 運(yùn)行界面圖1Edit的主要屬性 (1)AutoSelect屬性:設(shè)置編輯框得到焦點(diǎn)時(shí),文本是否自動(dòng)被選中。 (2)AutoSize屬性:決定編輯框是否自動(dòng)隨字體的變化而改變大小。 (3)Enable屬性 :用來(lái)設(shè)置編輯框是否能用。 (4)BorderSytle屬性:設(shè)置編輯框邊框類(lèi)型 。(5)MaxLength屬性:設(shè)所能接受最大字符數(shù)。(6)PasswordChar屬性:設(shè)置非#0字符時(shí),將代替用戶(hù)輸入的字符被顯示。 (7)ReadOnly屬性:定編輯框中的文本是否可以編輯。 (8)SelStart屬性:被選中文本的開(kāi)始位置,或光標(biāo)在文本中的位置。(9)SelText屬

56、性:被選中的文本 。(10)SelLength屬性:被選中文本的長(zhǎng)度。(11)Text屬性:編輯框中的文本內(nèi)容。(12)CharCase屬性:控制編輯框中文本大小寫(xiě) 3.2.2 Label組件標(biāo)簽組件位于Standard組件板中。 圖3-8 標(biāo)簽Label 運(yùn)行界面圖1Label的主要屬性 (1)Caption屬性:用來(lái)顯示標(biāo)簽的文本。 (2)ShowAccelChar屬性 :決定是否將&作為作為熱鍵字符的標(biāo)記。 (3)AutoSize屬性:決定標(biāo)簽是否自動(dòng)隨文本的變化而改變大小 。(4)Alignment屬性:決定對(duì)齊方式 。(5)Layout屬性:控制文本顯示在標(biāo)簽的位置。 (6)

57、WordWrap屬性:控制是否折行顯示。 (7)Transparent屬性:決定背景是否透明。 (8)FocusControl屬性:用來(lái)獲得焦點(diǎn)組件名。 3.2.3 Memo組件組件備注框組件位于Standard組件板中。1Memo的主要屬性備注框在Delphi中用Tmemo類(lèi)處理,Tmemo類(lèi)是Tedit類(lèi)的衍生類(lèi),為了處理多行文本,Tmemo類(lèi)還增加了一些新的屬性。(1)CaretPos屬性:得到光標(biāo)在編輯區(qū)中位置。 (2)Lines屬性:用來(lái)存放Memo對(duì)象的文本。 (3)Modified屬性:確定文本是否被改動(dòng)過(guò)。 圖3-10 備注框 Memo運(yùn)行界面圖(4)ScrollBars屬性:

58、決定備注框是否具有滾動(dòng)條 。(5)WordWrap屬性 :設(shè)置文本是否能夠換行 。(6)WantReturns屬性:用來(lái)設(shè)置備注框是否能插入“回車(chē)”鍵。 (7)WantTabs屬性:用來(lái)設(shè)置備注框是否能插入“Tab”鍵。 2Memo的使用【例3.4】利用編輯框,把編輯框中的文本輸入到Memo中。(1)界面設(shè)計(jì) 創(chuàng)建一個(gè)新的工程,在窗體中添加1個(gè)按鈕Button1組件、一個(gè)編輯框Edit1組件和一個(gè)備注框Memo1組件,各組件的屬性設(shè)置如圖:(2)程序設(shè)計(jì)procedure TForm1.Button1Click(Sender: TObject);begin Memo1.Lines.Add(Ed

59、it1.Text); edit1.Text:=; edit1.SetFocus; end;圖3-12 Memo示例運(yùn)行界面圖procedure TForm1.FormActivate(Sender: TObject);begin edit1.SetFocus;end;3.2.4 MaskEdit 組件組件 它限制用戶(hù)在所定義的位置輸入要求輸入的符號(hào)。掩碼編輯框(MaskEdit)組件位于A(yíng)dditional附加組件板”中。1MaskEdit常用屬性圖3-13 Memo示例運(yùn)行界面圖()EditMask屬性EditMask屬性用來(lái)控制用戶(hù)輸入數(shù)據(jù)格式的掩碼字符串,掩碼字符串EditMask屬性分

60、為三個(gè)部分,用分號(hào)分隔。第一部分是掩碼字符串的主要部分,它確定了數(shù)據(jù)的格式;第二部分決定是否將掩碼中的字符串作為數(shù)據(jù)的一部分,0表示不作為數(shù)據(jù)的一部分,1表示作為數(shù)據(jù)的一部分,它將影響屬性;第三部分指出在掩碼中用來(lái)代表未輸入數(shù)據(jù)的字符。(2)EditText屬性:用來(lái)返回用戶(hù)輸入的數(shù)據(jù)。 3.3按鈕類(lèi)組件按鈕類(lèi)組件3.3.1 Button組件組件Button按鈕在Delphi 7.0組件板Standard選項(xiàng)卡中 1.Button的主要屬性(1)Caption屬性:來(lái)制定按鈕所顯示的文字。(2)Cancel屬性:決定改按鈕是否為取消按鈕 ,缺省值為False。(3)Default屬性:用來(lái)決定改按鈕是

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論