Delphi教程完整演示文稿_第1頁
Delphi教程完整演示文稿_第2頁
Delphi教程完整演示文稿_第3頁
Delphi教程完整演示文稿_第4頁
Delphi教程完整演示文稿_第5頁
已閱讀5頁,還剩477頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Delphi教程完整版演示文稿目前一頁\總數(shù)四百八十二頁\編于十二點(diǎn)優(yōu)選Delphi教程完整版ppt目前二頁\總數(shù)四百八十二頁\編于十二點(diǎn)課程介紹Delphi是著名的Borland公司開發(fā)的可視化軟件開發(fā)環(huán)境,自1995年問世以來,帶來了程序設(shè)計(jì)中的一場重大變化。Delphi作為第四代編程語言,具有簡單、高效和功能強(qiáng)大等特點(diǎn),這些特點(diǎn)使得它為廣大程序開發(fā)者所青睞。目前三頁\總數(shù)四百八十二頁\編于十二點(diǎn)第1章Delphi基礎(chǔ)知識

1.1Delphi簡介Delphi作為一種可視化的編程環(huán)境,經(jīng)歷了7代產(chǎn)品的發(fā)展歷程:◆Borland公司在1995年推出了基于Windows平臺的Delphi1?!鬌elphi2新增加的主要功能是對32位編程的支持。還增加了如數(shù)據(jù)模塊等多種高效的數(shù)據(jù)重用功能。

目前四頁\總數(shù)四百八十二頁\編于十二點(diǎn)◆Delphi3對其組件庫進(jìn)行增強(qiáng),完全支持ActiveX組件及其創(chuàng)建?!鬌elphi4提供了ObjectPascal語言的擴(kuò)展,但系統(tǒng)穩(wěn)定性較差?!?999年推出Delphi5增強(qiáng)了數(shù)據(jù)庫的功能◆2001年6月推出Delphi6,增加了大量的新組件,使組件數(shù)目達(dá)350多個(gè),以滿足網(wǎng)絡(luò)開發(fā)的需要。◆2002年8月推出Delphi7,在集成開發(fā)環(huán)境IDE、Web、數(shù)據(jù)庫、編譯器、模型生成支持及組件庫等很多方面進(jìn)行了改進(jìn)目前五頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.2Delphi7IDE1.2.1認(rèn)識集成開發(fā)環(huán)境

Delphi7的IDE主要包括7個(gè)部分:主窗口、組件面板、工具欄、窗體設(shè)計(jì)器、代碼編輯器、對象觀察器和代碼瀏覽器。

圖1-1Delphi7的IDE目前六頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.主窗口主要包括:菜單欄、工具欄、標(biāo)題欄和組件面板

Delphi7的主菜單包括11個(gè)下拉菜單注意:工具欄上的按鈕都提供了描述該按鈕功能的tooltip,除了組件面板IDE有6個(gè)獨(dú)立的工具欄IDE工具欄的定制功能并不僅限于配置需要顯示的按鈕,還可以調(diào)整工具欄、組件面板和菜單欄在主窗口中的位置。

圖1-2Delphi7的主窗圖口目前七頁\總數(shù)四百八十二頁\編于十二點(diǎn)

Delphi7組件板包含了350多個(gè)組件,是Delphi可視化編程的核心部件,它由27個(gè)選項(xiàng)卡組成組件面板如圖1-4所示

包含了IDE中安裝的所有的VCL組件和ActiveX組件將組件板上的組件添加到窗體上的三種方法:①單擊組件板上的所需組件的按鈕,然后在窗體適當(dāng)位置拖動(dòng)鼠標(biāo)畫出組件,即可將組件添加到窗體的指定位置上圖1-4Delphi7的組件面板目前八頁\總數(shù)四百八十二頁\編于十二點(diǎn)②雙擊組件板上的所需組件的按鈕,即可將組件添加到窗體的中心位置③按下<Shift>鍵不放,單擊組件板上的所需組件的按鈕,所選組件出現(xiàn)藍(lán)色邊框,同時(shí)對象選擇按鈕將彈起組件板中的組件分為可視組件與非可視組件

2.窗體設(shè)計(jì)器在創(chuàng)建新的項(xiàng)目時(shí),窗體設(shè)計(jì)器是一個(gè)空白的窗口。可以用鼠標(biāo)調(diào)整組件在窗體設(shè)計(jì)器上的位置和大小,還可以用對象觀察器和代碼編輯器來控制組件的外觀和行為。目前九頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.對象觀察器利用對象觀察器,可以修改窗體或組件的屬性,或者使它們能夠響應(yīng)不同的事件。

屬性(Property)是一些數(shù)據(jù),如高度、顏色、字體等,它們決定了組件在屏幕上的外觀。事件(Event)則是一種消息處理機(jī)制,它能夠捕捉某種情況的發(fā)生并做出反應(yīng),像鼠標(biāo)單擊和窗口打開就是兩種典型的事件。對象觀察器類包括Properties選項(xiàng)卡和Events選項(xiàng)卡目前十頁\總數(shù)四百八十二頁\編于十二點(diǎn)

下圖兩個(gè)對象觀察器,左邊一個(gè)按種類排序,右邊一個(gè)按名字排序。注意:幫助系統(tǒng)是和對象觀察器緊密結(jié)合在一起的,想了解某個(gè)屬性或事件的幫助信息,只要在該屬性或事件上按下F1

圖1-5按種類或名稱查看ObjectInspector目前十一頁\總數(shù)四百八十二頁\編于十二點(diǎn)4.代碼編輯器

代碼編輯器是輸入代碼來指定應(yīng)用程序行為的地方,也是Delphi根據(jù)應(yīng)用程序中的組件自動(dòng)生成代碼的地方。當(dāng)向應(yīng)用程序中加入一個(gè)窗體時(shí),Delphi會自動(dòng)創(chuàng)建一個(gè)新的單元,并添加到代碼編輯器頂部的標(biāo)簽中。5.代碼瀏覽器

以一種樹狀視圖方式顯示列在代碼編輯器中的單元文件。通過它,可以方便地在單元文件中漫游或在單元文件中加入新的元素或者把已有的文件改名。要記住代碼瀏覽器和代碼編輯器有一對一的關(guān)系。目前十二頁\總數(shù)四百八十二頁\編于十二點(diǎn)6.源代碼生成器當(dāng)對窗體設(shè)計(jì)器中可視化組件進(jìn)行操作時(shí)DelphiIDE自動(dòng)生成ObjectPascal源代碼。當(dāng)用【File】|【New】|【Application】菜單命令創(chuàng)建一個(gè)新的項(xiàng)目時(shí),將看到屏幕上出現(xiàn)一個(gè)空白的窗體設(shè)計(jì)器,同時(shí),代碼編輯器中會自動(dòng)出現(xiàn)一些代碼,如下所示:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs;目前十三頁\總數(shù)四百八十二頁\編于十二點(diǎn)typeTForm1=class(TForm)private

{Privatedeclarations}public

{Publicdeclarations}

end;varForm1:TForm1;implementation{$R*.dfm}end.目前十四頁\總數(shù)四百八十二頁\編于十二點(diǎn)從上述源代碼清單中可以看出,窗體對象是從TForm繼承下來的。下面這一行非常重要:

{$R*.dfm}

Pascal語言中的$R指令用于加載一個(gè)外部資源文件。*.dfm文件中包含在窗體設(shè)計(jì)器中創(chuàng)建的表單的二進(jìn)制代碼。其中的“*”表示與當(dāng)前單元文件同名的文件。項(xiàng)目文件的擴(kuò)展名是.dpr可以選擇主菜單下的【Project】|【ViewSource】命令把項(xiàng)目源文件調(diào)入代碼編輯器。目前十五頁\總數(shù)四百八十二頁\編于十二點(diǎn)如下用程序示例的項(xiàng)目文件:

programProject1;usesForms,Unit1in'Unit1.pas'{Form1};{$R*.res}beginApplication.Initialize;Application.CreateForm(TForm1,Form1);Application.Run;end.當(dāng)添加表單和單元時(shí)將出現(xiàn)在uses子句中

目前十六頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.2.2基于組件的編程思想

Ⅰ.早期DOS操作系統(tǒng)和C語言主導(dǎo)的時(shí)代,“數(shù)據(jù)結(jié)構(gòu)+算法”成為構(gòu)建軟件惟一方式

Ⅱ.C++語言和面向?qū)ο蠹夹g(shù)

Ⅲ.20世紀(jì)90年代中期流行一種嶄新的程序設(shè)計(jì)概念:軟件可以由可互換的組件構(gòu)成

組件是一種通過公開的屬性、方法、事件,是可以重復(fù)使用的一種經(jīng)過編譯的二進(jìn)制文件,其文件名可以是.OCX或者是.dll,如命令按鈕、復(fù)選框、單選框、滾動(dòng)條等都是常見的組件。

目前十七頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.2.3Delphi7的特點(diǎn)

Delphi最顯著的特點(diǎn)就是高效性和穩(wěn)定性,主要體現(xiàn)在以下4個(gè)方面:●可視化開發(fā)環(huán)境的性能?!窬幾g器的速度和已編譯代碼的效率?!窬幊陶Z言的功能及其復(fù)雜性?!褙S富的VCL1.可視化開發(fā)環(huán)境

可視化開發(fā)環(huán)境通常可分為3個(gè)部分:編輯器、調(diào)試窗口和窗體設(shè)計(jì)器。目前十八頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.編譯器的速度和已編譯代碼的效率Pascal編譯器最著名特點(diǎn)就是速度快,而Delphi正是建立在這種編譯器基礎(chǔ)之上的。增加了鏈接和各種緩存策略,尤其是在VisualC++和C++Builder中。3.編程語言的功能及其復(fù)雜性

匯編是一種最有力的語言,即便是用匯編開發(fā)最簡單的應(yīng)用程序,難度也非常大,還可能一無所獲。

4.豐富的VCLVCL是Delphi7最重要的組成部分,包含不同種類的組件。

目前十九頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.2.4幫助的使用(1)當(dāng)遇到問題時(shí),可以嘗試按下【F1】鍵,一般情況下Delphi都會準(zhǔn)確地定位。(2)如果需要瀏覽系統(tǒng)的一些幫助內(nèi)容,比如說對象Pascal語言,可以通過菜單【Help】|【DelphiHelp】命令打開【幫助主題:DelphiHelp】對話框,在目錄標(biāo)簽中展開相關(guān)條目,進(jìn)行系統(tǒng)學(xué)習(xí)。3)當(dāng)使用WindowsAPI函數(shù)時(shí),通過【Help】|【DelphiHelp】打開的【幫助主題:DelphiHelp】對話框中,在【索引】選項(xiàng)卡中可能查不到有關(guān)的幫助信息,有兩種解決辦法:目前二十頁\總數(shù)四百八十二頁\編于十二點(diǎn)一種辦法是在代碼編輯器中輸入WindowsAPI函數(shù)的名稱,然后將光標(biāo)定位到該名稱中,接著按下【F1】鍵。另一種辦法是通過【Help】|【W(wǎng)indowsSDK】打開幫助文件Win32.hlp,在【索引】選項(xiàng)卡中查找。(4)幫助文件打開時(shí),要瀏覽相關(guān)內(nèi)容,可以按下工具欄中的【>>】或【<<】按鈕,通常這樣是在同一個(gè)主題中瀏覽。通過一些SeeAlso熱鏈接,也可以查看相關(guān)的幫助內(nèi)容。(5)在組件欄上右擊,通過快捷菜單的Help命令,可以查看有關(guān)組件的幫助內(nèi)容。目前二十一頁\總數(shù)四百八十二頁\編于十二點(diǎn)(6)在Delphi集成開發(fā)環(huán)境中,通過【Help】|【Customize】命令可以打開【OpenHelp】窗口,在該窗口中可以對幫助文件進(jìn)行管理,其中包括幫助內(nèi)容、幫助索引、鏈接位置和幫助工程文件等的管理。1.3簡單Delphi程序設(shè)計(jì)

Delphi7編寫應(yīng)用程序包括新建應(yīng)用程序、設(shè)置窗體屬性、添加組件、設(shè)置組件屬性、添加事件、編寫事件響應(yīng)代碼、編譯運(yùn)行等1.新建應(yīng)用程序目前二十二頁\總數(shù)四百八十二頁\編于十二點(diǎn)啟動(dòng)Delphi7,選擇【File】|【New】|【Application】菜單,新建一個(gè)應(yīng)用程序。2.設(shè)置窗體屬性

單擊【ObjectInspector】,在對象觀察器中打開【Properties】選項(xiàng)卡,單擊Caption屬性右側(cè),輸入窗體的新標(biāo)題“窗口”。3.向窗體中添加組件

單擊Standard選項(xiàng)卡上的Button組件,將鼠標(biāo)指向窗體中的任意位置(標(biāo)題欄除外),單擊鼠標(biāo),即可把Button1組件放入窗體中。或者直接雙擊組件面板上的Button組件,也可以在窗體中添加一個(gè)Button1組件。目前二十三頁\總數(shù)四百八十二頁\編于十二點(diǎn)4.設(shè)置組件屬性選中組件,單擊ObjectInspector的標(biāo)題欄以激活對象觀察器,并選擇Properties選項(xiàng)卡。在對象觀察器中單擊要設(shè)置的屬性,進(jìn)行屬性設(shè)置。5.添加事件選中要添加事件的組件,激活對象觀察器,并選擇Event選項(xiàng)卡,在對象觀察器中單擊要添加的事件,在其右側(cè)輸入事件的響應(yīng)函數(shù)名稱,然后回車即可。

6.編寫事件響應(yīng)代碼

目前二十四頁\總數(shù)四百八十二頁\編于十二點(diǎn)

選定要編寫事件響應(yīng)代碼的組件,打開Event選項(xiàng)卡,雙擊要編寫響應(yīng)代碼的事件右側(cè)的空白部分,進(jìn)入代碼編輯窗口。

procedureTForm1.Button1Click(Sender:TObject);//單擊放大按鈕,窗口將放大beginform1.Height:=form1.Height+10;//窗口高度10form1.Width:=form1.Width+10;//窗口寬度10

end;procedureTForm1.Button2Click(Sender:TObject);//單擊縮小按鈕,窗口將縮小Beginform1.Height:=form1.Height-10;//窗口高度減10

目前二十五頁\總數(shù)四百八十二頁\編于十二點(diǎn)form1.Width:=form1.Width-10;//窗口寬度減10end;

procedureTForm1.Button3Click(Sender:TObject);//關(guān)閉窗口beginclose;//退出end;7.編譯運(yùn)行程序圖1-6例程運(yùn)行界面目前二十六頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.4Delphi上機(jī)步驟1.啟動(dòng)程序2.添加組件在窗體設(shè)計(jì)器中添加如圖1-7所示的各組件。3.設(shè)置組件屬性4.編寫代碼組件屬性設(shè)置完成后,編寫如下代碼:圖1-7窗體布局圖目前二十七頁\總數(shù)四百八十二頁\編于十二點(diǎn)procedureTForm1.Edit1Change(Sender:TObject);//編輯框1中的內(nèi)容改變時(shí)的事件varstringlength:integer;//定義整型變量,記錄編輯框1中字符的個(gè)數(shù)beginstringlength:=edit1.GetTextLen;//得到編輯框1中字符個(gè)數(shù)edit2.Text:=inttostr(stringlength);//編輯框2顯示編輯框1中字符個(gè)數(shù)end;procedureTForm1.Button1Click(Sender:TObject);//關(guān)閉窗口beginclose;end;目前二十八頁\總數(shù)四百八十二頁\編于十二點(diǎn)5.保存工程 保存工程分為保存單元文件和保存項(xiàng)目文件兩步。第一步是保存單元文件,單擊工具欄上的Save按鈕,將打開SaveUnit1As窗口,默認(rèn)的單元文件名是“Unit1.pas”,以“.pas”為擴(kuò)展名,單元文件名根據(jù)需要可以另取。第二步是保存項(xiàng)目文件,單擊工具欄上SaveProject1As按鈕,默認(rèn)的項(xiàng)目文件名是“Project1.dpr”,工程文件名根據(jù)需要可以另取以“.dpr”為擴(kuò)展名目前二十九頁\總數(shù)四百八十二頁\編于十二點(diǎn)6.運(yùn)行工程 保存工程結(jié)束后即可運(yùn)行工程小結(jié)在本章中,主要介紹了Delphi的產(chǎn)生和發(fā)展,Delphi的特點(diǎn),使用Delphi進(jìn)行程序設(shè)計(jì)的一些基礎(chǔ)知識。本章的重點(diǎn)是Delphi的開發(fā)環(huán)境和開發(fā)方法,通過實(shí)例介紹了Delphi的程序設(shè)計(jì)和上機(jī)操作的一般步驟。圖1-10工程運(yùn)行界面圖目前三十頁\總數(shù)四百八十二頁\編于十二點(diǎn)第2章Delphi語法基礎(chǔ)

2.1保留字與標(biāo)識符2.1.1標(biāo)識符標(biāo)識符是ObjectPascal語言中各種成分的名稱,這些成分包括變量(Var)、常量(Const)、類型(Type)、過程(Procedure)、函數(shù)(Function)、方法(Method)、單元(Unit)等。

目前三十一頁\總數(shù)四百八十二頁\編于十二點(diǎn)標(biāo)識符可以分為三類:標(biāo)準(zhǔn)標(biāo)識符、自定義標(biāo)識符和限定標(biāo)識符。1.標(biāo)準(zhǔn)標(biāo)識符(1)標(biāo)準(zhǔn)常量,如False、Maxint、True等;(2)標(biāo)準(zhǔn)類型,如Boolean、Char、Real等;(3)標(biāo)準(zhǔn)函數(shù),如Sin、Cos、Abs、Arctan等;(4)標(biāo)準(zhǔn)過程,如Dispose、Get、New、Pack、Put等;(5)標(biāo)準(zhǔn)文件,如Input、Output等。目前三十二頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.自定義標(biāo)識符程序員根據(jù)程序設(shè)計(jì)的需要,自己定義的常量、變量、類型、函數(shù)、過程等所取的名字。自定義標(biāo)識符可以由任意長的一個(gè)不帶空格的字符串組成,包括字母A~Z、a~z、數(shù)字0~9和下劃線“_”等。定義標(biāo)識符需要遵循以下規(guī)則:(1)標(biāo)識符不區(qū)分大小寫;(2)標(biāo)識符只能以字母或下劃線開頭,不能以數(shù)字開頭;(3)標(biāo)識符可任意長度,但只有前225個(gè)字符有效;(4)標(biāo)識符中間不允許有空格;

目前三十三頁\總數(shù)四百八十二頁\編于十二點(diǎn)(5)不允許使用ObjectPascal語言的保留字作為標(biāo)識符。3.限定標(biāo)識符在Delphi程序中可引用多個(gè)單元,而各個(gè)單元中全局變量、函數(shù)、過程等可能會同名,在引用時(shí)需用限定標(biāo)識符來區(qū)分它們:Var

Y:real;Y:=System.cos(pi);其中System稱為限定符,而System.cos稱為限定標(biāo)識符。目前三十四頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.1.2保留字保留字由系統(tǒng)規(guī)定具有特定意義,不能被重新定義或作他用,定義了65個(gè)保留字。注意:1.單詞at和on具有特殊含義,不要與它們同名。2.保留字和ObjectPascal一樣不區(qū)分大小寫。3.Delphi集成開發(fā)環(huán)境的代碼編輯器中,黑體顯示保留字和指令字,定義時(shí)不要與這些黑體字一樣。

目前三十五頁\總數(shù)四百八十二頁\編于十二點(diǎn)ObjectPascal的保留字

and

arrayasasmbegincaseclass

constconstructor

destructor

dispinterfacedivdodowntoelseendexcept

exportsfilefinalizationfinallyforfunction

goto

ifimplementationininherited

initializationinline

interface

islabellibrarymodnil

not

objectoforoutpackedprocedureprogrampropertyraise

recordrepeatresourcestring

setshlshrstring

thenthreadvartotrytype

unit

untilusesvarwhilewithxor目前三十六頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.1.3指令符指令字只在特殊的程序位置、或當(dāng)上下文關(guān)聯(lián)時(shí)有意義的程序區(qū)段有自己特殊的意義,而在其他場合,用戶可對其重新定義,即可將其定義為標(biāo)識符,ObjectPascal不會指示出錯(cuò),當(dāng)用戶重新定義這些指令字后,在作用域內(nèi)它們就失去了原來的意義了。

ObjectPascal中規(guī)定的指令符有39個(gè)說明:指令符private、protected、public、published和automated在定義對象類型時(shí)也作為保留字,而在其他場合則作為指令符。目前三十七頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.1.4注釋注釋可增加程序的可讀性和可維護(hù)性。

ObjectPascal語言中注釋有三種形式:1.組合符號“{”與“}”的成對使用表示它們之間的內(nèi)容為注釋部分。2.組合符號“(*”與“*)”的成對使用表示它們之間的內(nèi)容為注釋部分。3.符號“//”的單個(gè)使用表示所在行的該符號之后的內(nèi)容為注釋。目前三十八頁\總數(shù)四百八十二頁\編于十二點(diǎn)注意:1.注釋符“{”與“}”、“(*”與“*)”在使用時(shí)不支持注釋的嵌套,而且必須成對使用。2.對于單行和少量幾行注釋使用符號“//”,對于大塊注釋使用“{”和“}”或“(*”和“*)”。3.有時(shí)可利用注釋在代碼中形成一個(gè)醒目標(biāo)志。4.在注釋符“{”或“(*”后緊接著是一個(gè)美元符號“$”時(shí),表示該句是一個(gè)編譯器指令,它與普通的注釋不同,通常用來對編譯過程進(jìn)行設(shè)置。目前三十九頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.2數(shù)據(jù)類型描述客觀事物的數(shù)、字符以及所有能輸入到計(jì)算機(jī)中并被計(jì)算機(jī)程序加工處理的符號的集合稱為數(shù)據(jù)。數(shù)據(jù)類型可以分為標(biāo)準(zhǔn)數(shù)據(jù)類型及高級數(shù)據(jù)類型等,還可以通過數(shù)據(jù)類型聲明語句在預(yù)定義數(shù)據(jù)類型的基礎(chǔ)上定義新數(shù)據(jù)類型。說明:1.標(biāo)準(zhǔn)數(shù)據(jù)類型屬于ObjectPascal內(nèi)部約定的數(shù)據(jù)類型,無需定義就可以直接使用。目前四十頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.高級數(shù)據(jù)類型體現(xiàn)了特殊的數(shù)據(jù)結(jié)構(gòu),在使用之前必須由用戶自己定義。3.?dāng)?shù)據(jù)類型中整型、字符型、布爾型、枚舉型和子界型被稱為順序類型,其取值是一個(gè)有序集合,每一個(gè)可能取值都與順序有關(guān)。2.2.1數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù)可分為整數(shù)類型和實(shí)數(shù)類型。1.整數(shù)類型整數(shù)類型是存儲整數(shù)數(shù)據(jù)的類型,分為基本整形和一般整形。目前四十一頁\總數(shù)四百八十二頁\編于十二點(diǎn)基本整形:短整型、小整型、長整型、64位整型、字節(jié)型、字型、長字型一般整形:整型、序數(shù)型注意:盡量使用一般整型Integer和Cardinal,可以最大限度發(fā)揮CPU和操作系統(tǒng)的性能。

2.實(shí)數(shù)類型實(shí)數(shù)類型是存儲實(shí)數(shù)數(shù)據(jù)的類型,分為基本實(shí)型和一般實(shí)型?;緦?shí)型:單精度實(shí)型、擴(kuò)展型、雙精度實(shí)型、貨幣型一般實(shí)型:實(shí)型目前四十二頁\總數(shù)四百八十二頁\編于十二點(diǎn)注意:Real類型與Double類型完全等價(jià)。Currency類型至少有4位有效的小數(shù)位。

2.2.2字符型數(shù)據(jù)

ObjectPascal中的字符型數(shù)據(jù)可以分為字符型和字符串型2類7種。1.字符類型

ObjectPascal包括3種形式的字符型數(shù)據(jù)類型

名稱

字節(jié)數(shù)

取值范圍

Ansi字符型

AnsiChar1擴(kuò)展ANSI字符集

寬字符型

WideChar2UniCode字符集

字符型

Char

1(2)擴(kuò)展ANSI字符集

目前四十三頁\總數(shù)四百八十二頁\編于十二點(diǎn)說明:(1)前2種為基本字符類型后一種為一般類型。(2)Char與AnsiChar完全等價(jià),但Char常用。2.字符串類型字符串類型是存儲字符串?dāng)?shù)據(jù)的類型,ObjectPascal包括了4種形式的字符串型數(shù)據(jù)

類型

名稱

最大長度

所需內(nèi)存空間

短字符串型

ShortString255個(gè)字符

2~256B

長字符串型

AnsiString231個(gè)字符

4~2GB

寬字符串型

WideString230個(gè)字符

4~2GB

字符串型

String

231個(gè)字符

4~2GB

目前四十四頁\總數(shù)四百八十二頁\編于十二點(diǎn)說明:(1)AnsiString類型的定義是動(dòng)態(tài)分配的,內(nèi)容由AnsiChar類型的字符組成,長度僅受可用內(nèi)存空間的限制,以空字符Nul作為結(jié)尾。(2)String字符串類型,既可以是ShortString類型也可以是AnsiString類型,默認(rèn)定義是AnsiString類型。2.2.3布爾型數(shù)據(jù)布爾型數(shù)據(jù)用于關(guān)系運(yùn)算和條件語句的邏輯運(yùn)算,包括4種形式的布爾型數(shù)據(jù)。目前四十五頁\總數(shù)四百八十二頁\編于十二點(diǎn)說明:(1)后3種類型是為了兼容其他語言而設(shè)置的,編程時(shí)應(yīng)盡量使用Boolean類型。(2)Boolean取值為False和True兩個(gè)符號常量。類型

名稱

字節(jié)數(shù)

取值

布爾型

Boolean1只能為0(False)或1(True)

字節(jié)布爾型

ByteBool10(False)或非0(True)

寬布爾型WordBool20(False)或非0(True)

長布爾型LongBool40(False)或非0(True)

目前四十六頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.3常量與變量2.3.1常量常量即在程序的執(zhí)行過程中其值不能改變的量。常量有兩種,一種是常量值本身,也稱為直接常量;另一種是要用聲明定義的標(biāo)識符表示的常量,也稱為聲明常量。聲明常量又可以分為符號常量和類型常量。1.直接常量直接常量是指在程序中直接引用的常數(shù),如整型常數(shù)、實(shí)型常數(shù)、字符型常數(shù)、字符串型常數(shù)和布爾型常數(shù)。2.聲明常量目前四十七頁\總數(shù)四百八十二頁\編于十二點(diǎn)(1)符號常量在程序中,某一個(gè)常數(shù)反復(fù)多次出現(xiàn),可以定義一個(gè)標(biāo)識符來代表該常數(shù),這個(gè)標(biāo)識符就是符號常量,其值在定義后不會改變。也稱純常量。定義符號常量使用常量說明語句,其語法格式為:Const<常量名1>=<常量值1>;

…<常量名n>=<常量值n>;其中Const是保留字,表示常量定義段開始。目前四十八頁\總數(shù)四百八十二頁\編于十二點(diǎn)注意:●保留字Const可單獨(dú)一行也可與常量一行?!癫荒茉诔绦蛑薪o常量另行賦值,否則將導(dǎo)致語法錯(cuò)誤。●Delphi由常量值判斷常量名屬于哪種類型。(2)類型常量類型常量用于保存數(shù)組、記錄、過程以及指針等類型的值,不能出現(xiàn)在常量表達(dá)式中。在默認(rèn)的編譯器狀態(tài)下,類型常量的值可改變,但當(dāng)在程序中加入編譯命令{$j-}時(shí),則類型常量的值在運(yùn)行期就無法改變。目前四十九頁\總數(shù)四百八十二頁\編于十二點(diǎn)聲明類型常量的語法規(guī)則為:Const

<類型常量名>:<類型>=<常量值>;其中類型是除文件型和可變型的所有類型,常量值可以是和類型相應(yīng)的常量表達(dá)式。

2.3.2變量1.變量的聲明變量在單元、函數(shù)或過程的聲明部分進(jìn)行聲明,聲明的位置決定了變量的作用域。聲明包括兩部分:變量名和它所屬的類型,變量聲明的語法格式為:目前五十頁\總數(shù)四百八十二頁\編于十二點(diǎn)Var<變量名1>:<類型名1>;…<變量名n>:<類型名n>;當(dāng)多個(gè)變量具有相同數(shù)據(jù)類型時(shí),格式如下:Var

<變量名1>,<變量名2>,…<變量名n>:<類型名>;其中,Var是保留字,表示變量聲明段的開始;同類型的<變量名>可超過一個(gè),<變量名>間用“,”分隔;<類型名>可以是基本數(shù)據(jù)類型或是由用戶定義的高級數(shù)據(jù)類型;目前五十一頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.變量的使用一旦聲明了一個(gè)變量應(yīng)及時(shí)對它進(jìn)行初始化,最簡單方法就是給變量賦值,在表達(dá)式中使用變量。2.4運(yùn)算符與表達(dá)式按照操作數(shù)數(shù)目的多少來分,運(yùn)算符分為下面兩類:單目運(yùn)算符和雙目運(yùn)算符。單目運(yùn)算符一般放在操作對象的前面,雙目運(yùn)算符都放在兩個(gè)操作數(shù)之間。表達(dá)式是表示某個(gè)求值規(guī)則的運(yùn)算公式,由運(yùn)算符和配對的圓括號將常量、變量、函數(shù)、對象等操作數(shù)以合理的形式組合而成。目前五十二頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.4.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式1.算術(shù)運(yùn)算符算術(shù)運(yùn)算符對浮點(diǎn)數(shù)和整數(shù)進(jìn)行加、減、乘、除和取模運(yùn)算,取正“+”和取負(fù)“-”是單目運(yùn)算符,其他均為雙目運(yùn)算符。說明:(1)+、-、*運(yùn)算中,參加運(yùn)算的數(shù)可以是整型和實(shí)型,結(jié)果自動(dòng)向精度高的類型轉(zhuǎn)化。(2)參加除法運(yùn)算“/”,結(jié)果都是實(shí)型的商。(3)參加整數(shù)除法“Div”和求余運(yùn)算“Mod”的數(shù)必須是整型,結(jié)果也是整型數(shù),符號與被除數(shù)的符號相同,小數(shù)部分被舍去。(4)在表達(dá)式a/b、aDivb和aModb中,如果b的值為0,將會觸發(fā)一個(gè)錯(cuò)誤。目前五十三頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.算術(shù)運(yùn)算符的優(yōu)先級同級運(yùn)算自左至右,如果含有括號,則先計(jì)算括號內(nèi)表達(dá)式的值。3.算術(shù)表達(dá)式將數(shù)學(xué)式改寫為算術(shù)表達(dá)式,考慮三個(gè)問題:一是語法,二是優(yōu)先級,三是類型。優(yōu)先順序

運(yùn)算符

1+、-(取正、取負(fù))

2*、/(法、除法)

3Div、Mod(整除、求余)4+、—(加法、減法)

目前五十四頁\總數(shù)四百八十二頁\編于十二點(diǎn)說明:(1)數(shù)學(xué)式中省略的運(yùn)算符和表示函數(shù)參數(shù)的括號必須添加上去(2)必須注意優(yōu)先級的處理,恰當(dāng)利用標(biāo)準(zhǔn)函數(shù),注意數(shù)據(jù)類型。2.4.2邏輯運(yùn)算符與布爾表達(dá)式

邏輯運(yùn)算符可分為布爾運(yùn)算符、位運(yùn)算符和關(guān)系運(yùn)算符。1.布爾運(yùn)算符只能對兩個(gè)布爾型操作數(shù)進(jìn)行運(yùn)算,結(jié)果仍為布爾型,True或False。目前五十五頁\總數(shù)四百八十二頁\編于十二點(diǎn)其中,NOT是求“非”,為一元運(yùn)算符;AND是求“與”,OR是求“或”,XOR是求“異或”,均為二元運(yùn)算符。2.位運(yùn)算符運(yùn)算符

操作舉例操作數(shù)類型

結(jié)果類型

功能說明

NOT

NOTx

integerinteger即按二進(jìn)制形式將每位求反ANDaANDbintegerinteger將兩者相對應(yīng)的位進(jìn)行AND運(yùn)算ORaORb

integerinteger將兩者相對應(yīng)的位進(jìn)行OR運(yùn)算XOR

aXORbintegerinteger將兩者相對應(yīng)的位進(jìn)行取XOR運(yùn)算,兩者不同時(shí)結(jié)果為1

SHLaSHLbintegerinteger將a的二進(jìn)制值向左移動(dòng)b位,左移一位相當(dāng)于乘2

SHRaSHRbintegerinteger將a的二進(jìn)制向右移動(dòng)b位,右移一位相當(dāng)于除2目前五十六頁\總數(shù)四百八十二頁\編于十二點(diǎn)注意:右移操作時(shí)原值的低位丟失,高位補(bǔ)0;左移操作時(shí)原值的高位丟失,低位補(bǔ)0。3.關(guān)系運(yùn)算符關(guān)系符

操作

操作數(shù)類型

結(jié)果類型

=等于簡單類型,字符串或可變類型,類,類引用,指針,集合類型Boolean<>不等于簡單類型,字符串或可變類型,類,類引用,指針,集合類型Boolean<小于簡單類型,字符串或可變類型Boolean>大于簡單類型,字符串或可變類型Boolean<=小于等于簡單類型,字符串或可變類型Boolean>=大于等于簡單類型,字符串或可變類型Boolean目前五十七頁\總數(shù)四百八十二頁\編于十二點(diǎn)4.布爾表達(dá)式布爾表達(dá)式由布爾運(yùn)算符和布爾類型的操作數(shù)所組成,包括關(guān)系運(yùn)算表達(dá)式和運(yùn)算結(jié)果為布爾類型的函數(shù),如Odd(x)、FileExists(x)、等。但位運(yùn)算符的結(jié)果是整數(shù)類型,不能直接作為布爾操作數(shù)。2.4.3字符串運(yùn)算符連接運(yùn)算符“+”主要用于連接兩個(gè)或更多的字符串。最簡單的字符串表達(dá)式是字符常量、字符串常量、字符變量、字符串變量或字符函數(shù)的引用。字符串表達(dá)式格式為:目前五十八頁\總數(shù)四百八十二頁\編于十二點(diǎn)<字符串表達(dá)式>+{<字符串>|<字符>}當(dāng)兩個(gè)字符串用連接運(yùn)算符連接起來后,第二個(gè)字符串直接添加到第一個(gè)字符串的尾部,結(jié)果是包含兩個(gè)源字符串全部內(nèi)容的新字符串。如果要把多個(gè)字符串連接起來,每兩個(gè)字符串之間都要用“+”號分隔。2.4.4運(yùn)算符的優(yōu)先級優(yōu)先順序

運(yùn)算符

分類描述

1@(取地址),NOT,-一元運(yùn)算符2*,/,DIV,MOD,AND,SHL,SHR乘除及類型強(qiáng)制轉(zhuǎn)換運(yùn)算符3+,-,OR,XOR加減運(yùn)算符4=,<>,<,>,<=,>=,in,is關(guān)系、集合成員及類型比較運(yùn)算符目前五十九頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.5常用系統(tǒng)函數(shù)與過程2.5.1數(shù)值運(yùn)算函數(shù)Delphi的數(shù)值運(yùn)算函數(shù)包含了常用的數(shù)學(xué)函數(shù)(如三角函數(shù)、對數(shù)函數(shù)等)和適合計(jì)算機(jī)數(shù)據(jù)處理的其他函數(shù)(如求數(shù)組中的最大值、求三角形的斜邊長等)。2.5.2字符處理函數(shù)對字符的處理主要包括:大小寫轉(zhuǎn)換、比較先后順序、合并、查找、截取、插入、求長度以及類型轉(zhuǎn)換等。

2.5.3日期時(shí)間函數(shù)調(diào)用日期時(shí)間函數(shù)可對日期和時(shí)間進(jìn)行處理目前六十頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.5.4順序類型函數(shù)1.順序類型順序類型指整型、字符型、布爾型、枚舉型、子界型5種數(shù)據(jù)類型,如下所述:(1)整數(shù)的的序數(shù)是其自身;(2)字符的序數(shù)是其ASCII碼;(3)布爾型數(shù)據(jù):False序數(shù)為0,True為1;(4)枚舉型第一個(gè)數(shù)據(jù)序數(shù)為0,其余類推;(5)子界型第一個(gè)數(shù)據(jù)序數(shù)為1,其余類推。除第一個(gè)序數(shù),每一個(gè)都有一個(gè)前趨值;除最后一個(gè)序數(shù),每一個(gè)都有一個(gè)后繼值。目前六十一頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.順序函數(shù)2.6語句2.6.1語句的基本概念按執(zhí)行時(shí)間可分為:聲明語句和可執(zhí)行語句。順序函數(shù)

引用形式

函數(shù)功能描述

序數(shù)函數(shù)Ord(x);返回?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ù)最?。K€可以返回?cái)?shù)組的第一個(gè)元素末序數(shù)函數(shù)High(x);返回順序型數(shù)據(jù)x取值集合中的最末一個(gè)值(序數(shù)最大),它還可以返回?cái)?shù)組的最末一個(gè)元素目前六十二頁\總數(shù)四百八十二頁\編于十二點(diǎn)

聲明語句包括單元說明語句、類型說明語句、變量說明語句、過程說明語句、函數(shù)說明語句和程序區(qū)段標(biāo)識語句等。可執(zhí)行語句包括賦值語句、運(yùn)行控制語句和結(jié)構(gòu)控制語句等。按語句的描述形式,可分為簡單語句、結(jié)構(gòu)語句和復(fù)合語句等。簡單語句只含有一個(gè)語句定義符或特殊標(biāo)志;結(jié)構(gòu)語句往往含有多于一個(gè)的語句動(dòng)詞;復(fù)合語句則是由begin和end括起來的若干個(gè)簡單語句、結(jié)構(gòu)語句和復(fù)合語句,允許復(fù)合語句多層嵌套,或?yàn)榭?,也就是在begin和end之間沒有其他語句。

目前六十三頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.6.2常見聲明語句1.標(biāo)號聲明語句標(biāo)號聲明語句即用一個(gè)整型數(shù)來表示程序的某個(gè)執(zhí)行語句,一行標(biāo)號聲明語句可以同時(shí)聲明幾個(gè)標(biāo)號,其用法如下所示:labelAa,Ab;varI:integer;begin…//語句

if(I=0)thengotoAa;…//語句Aa:begin…//語句

end;end;目前六十四頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.類型聲明語句在ObjectPascal中,所有的變量必須是某種特定的數(shù)據(jù)類型,類型決定了它所能包含的數(shù)值和可進(jìn)行的操作,用類型聲明語句可以定義新的數(shù)據(jù)類型。例如:TypeTmyDim:Array[1..10,1..5]ofDouble;3.過程聲明語句過程可以被看成一段小程序,用來實(shí)現(xiàn)某種特定的目標(biāo),在完整的程序中它被當(dāng)作一個(gè)語句來執(zhí)行。在建立過程之前應(yīng)先聲明。procedureNumString(N:Integr;VarS:string);目前六十五頁\總數(shù)四百八十二頁\編于十二點(diǎn)4.函數(shù)聲明語句函數(shù)與過程相似,主要區(qū)別在于函數(shù)必須有返回值,函數(shù)的聲明參見下面的語句,其中,最后的Real表示函數(shù)的返回?cái)?shù)據(jù)類型。FunctionPower(X:Real;Y:Integer):Real;2.6.3賦值語句和程序的順序結(jié)構(gòu)1.賦值語句賦值語句的語法格式為:<變量名>:=<表達(dá)式>;2.類型兼容類型兼容是指數(shù)據(jù)類型不完全相同的量之間能進(jìn)行的運(yùn)算和賦值操作。目前六十六頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.利用賦值語句給對象屬性賦值由于屬性總是歸屬于對象才有實(shí)際意義,所以引用屬性時(shí)用符號“.”來連接表示其隸屬關(guān)系。如組件Editl的字體的顏色屬性表示為:Editl.Font.Color。

4.順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡單、最常用的結(jié)構(gòu)。在該結(jié)構(gòu)中,各操作塊按照出現(xiàn)的先后順序依次執(zhí)行,不產(chǎn)生程序流程的其他轉(zhuǎn)移。它是任何程序的主體結(jié)構(gòu),即使在選擇結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中,也常以順序結(jié)構(gòu)作為其子結(jié)構(gòu)。通常由若干個(gè)賦值語句或其他簡單語句構(gòu)成。目前六十七頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.6.4條件語句和程序的選擇結(jié)構(gòu)實(shí)現(xiàn)選擇結(jié)構(gòu)的是IF語句和Case語句,這兩種語句又稱條件語句,條件語句的功能就是根據(jù)表達(dá)式的值有選擇地執(zhí)行一組語句。1.if語句通過條件的布爾表達(dá)式值選擇執(zhí)行路徑。

if<條件>then[<語句1>][else<語句2>];

if語句分為簡單條件語句和復(fù)合條件語句。簡單條件語句的<語句>中不包含其他的條件語句。如果在If語句格式中的<語句1>或<語句2>本身又是一個(gè)If語句,則稱為If語句的嵌套,嵌套的If語句又被稱為復(fù)合條件語句。目前六十八頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.Case語句

Case語句用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。Case語句描述了多路擇一的功能,它根據(jù)“選擇器表達(dá)式”的值決定執(zhí)行相應(yīng)的語句。Case語句的語法格式為:

case<選擇器表達(dá)式>of<情況常量表1>:<語句1>;…<情況常量表n>:<語句n>;[else<其他語句列>;]end;說明:<選擇器表達(dá)式>的值必須是順序類型。目前六十九頁\總數(shù)四百八十二頁\編于十二點(diǎn)2.6.5循環(huán)語句和程序的循環(huán)結(jié)構(gòu)從某處開始有規(guī)律地反復(fù)執(zhí)行某一程序塊的現(xiàn)象稱為“循環(huán)”,完成這一功能的程序結(jié)構(gòu)為“循環(huán)結(jié)構(gòu),”而其中重復(fù)執(zhí)行的程序塊稱為“循環(huán)體”。循環(huán)結(jié)構(gòu)語句有3種,它們分別是:While語句、Repeat語句以及For語句。1.While語句

While語句屬于前測型循環(huán)結(jié)構(gòu)。首先判斷條件,根據(jù)條件決定是否執(zhí)行循環(huán),執(zhí)行循環(huán)的最少次數(shù)為0。其語法格式為:while<條件>do[<循環(huán)體>];目前七十頁\總數(shù)四百八十二頁\編于十二點(diǎn)說明:可在(循環(huán)體)中任何位置Break語句來終止While循環(huán),Break語句通常位于IF語句后。可在循環(huán)體中任何位置放置Continue語句,以便在整個(gè)循環(huán)體沒有執(zhí)行完就重新判斷(條件),以決定是否開始新的循環(huán)。Continue語句通常位于IF語句之后。

2.Repeat語句

Repeat語句屬于后測型循環(huán)結(jié)構(gòu),首先執(zhí)行循環(huán)體,然后判斷條件,根據(jù)條件決定是否繼續(xù)執(zhí)行循環(huán),執(zhí)行循環(huán)的最少次數(shù)為1。repeat[<循環(huán)體>]until<條件>;目前七十一頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.For語句若知道要執(zhí)行多少次循環(huán)時(shí),則使用For循環(huán)結(jié)構(gòu)。For循環(huán)使用一個(gè)循環(huán)變量,每重復(fù)一次循環(huán)之后,循環(huán)變量的值就會自動(dòng)增加或者減少。For語句的語法格式為:for<循環(huán)變量>=<初值>{to|downto}<終值>do[<循環(huán)體>];說明:<循環(huán)變量>只能是順序類型,TO表示計(jì)數(shù)器遞增,DownTo表示計(jì)數(shù)器遞減。4.循環(huán)的嵌套循環(huán)語句的循環(huán)體中僅包含了簡單語句,稱為單重循環(huán)。目前七十二頁\總數(shù)四百八十二頁\編于十二點(diǎn)如果在循環(huán)體中又包含了另一個(gè)循環(huán)結(jié)構(gòu),則稱為多重循環(huán),又稱為循環(huán)的嵌套。在循環(huán)體中的嵌套稱為內(nèi)循環(huán),外部的循環(huán)稱為外循環(huán)。多重循環(huán)嵌套根據(jù)循環(huán)結(jié)構(gòu)嵌套層數(shù)可以分為二重循環(huán)、三重循環(huán)等。

5.循環(huán)的中斷特殊情況下,需要中斷正在執(zhí)行的循環(huán),可以使用break語句或Continue語句??梢苑旁谘h(huán)體的任意位置,通常放在If語句之后。執(zhí)行Break語句的結(jié)果是:跳出整個(gè)循環(huán),執(zhí)行<循環(huán)體>之后的語句。目前七十三頁\總數(shù)四百八十二頁\編于十二點(diǎn)執(zhí)行Continue語句的結(jié)果是:跳出本輪循環(huán),然后判斷循環(huán)條件是否成立,再決定是否開始新一輪的循環(huán)。小結(jié)本章主要介紹了ObjectPascal的最基本的語法,主要包括基本詞法、基本數(shù)據(jù)類型、常量與變量、運(yùn)算符與表達(dá)式、常用函數(shù)與過程、語句等。目前七十四頁\總數(shù)四百八十二頁\編于十二點(diǎn)第3章常用組件

Delphi7.0的組件板上含有27個(gè)選項(xiàng)卡,總共包括350多個(gè)組件,如圖所示:3.1窗體

3.1.1Form組件

窗體是應(yīng)用程序的操作界面,是放置組件的基礎(chǔ)。窗體由標(biāo)題欄、工作區(qū)和邊界組成。圖3-1組件板和選項(xiàng)卡運(yùn)行界面圖目前七十五頁\總數(shù)四百八十二頁\編于十二點(diǎn)Form的主要屬性窗體組件(TForm)在運(yùn)行時(shí)表現(xiàn)為一個(gè)窗體,窗體是一個(gè)容器構(gòu)件,它可以包含其他種類的構(gòu)件,并協(xié)同完成應(yīng)用程序的整體功能。窗體由屬性、事件和方法組成。(1)BorderIcons屬性用來制定窗體標(biāo)題欄上的圖標(biāo)(2)BorderStyle屬性Borderstyle屬性用來設(shè)置窗體的外觀和邊框(3)Name屬性Name屬性唯一地標(biāo)識對象,取值不能為空,若工程中有多個(gè)窗體,名稱不能相同。

目前七十六頁\總數(shù)四百八十二頁\編于十二點(diǎn)(4)Caption屬性用來指定窗體標(biāo)題欄中說明文字,可以為空。(5)Font屬性

Font屬性用來設(shè)置窗體中文字的字體、顏色和字號等等,其中Font.style屬性為集合型。(6)FormStyle屬性

FormStyle屬性用來指定窗體的類型。從窗體類型的角度來看,Windows環(huán)境中的應(yīng)用程序可以分為以下三類。第一類:多文檔界面(MDI)應(yīng)用程序一般這種應(yīng)用程序具有一個(gè)父級窗口和多個(gè)子窗口,可以同時(shí)打開多個(gè)文檔,分別在多個(gè)子窗口中顯示。目前七十七頁\總數(shù)四百八十二頁\編于十二點(diǎn)

第二類:單文檔界面(SDI)應(yīng)用程序這種應(yīng)用程序同時(shí)只能打開一個(gè)文檔。第三類:對話框應(yīng)用程序這種應(yīng)用程序的主界面基于一個(gè)對話框類型的窗體。

(7)Icon屬性

Icon屬性用來指定標(biāo)題欄中顯示的圖標(biāo)。(8)Position屬性

Position屬性用來描述窗體大小和顯示位置。

(9)WindowsState屬性

WindowsState屬性來描述窗體顯示狀態(tài)。2.TForm的事件窗體是一個(gè)可視化的組件,包括外部事件和內(nèi)部事件。目前七十八頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.窗體的方法一些常用方法(過程或函數(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í)通過代碼生成窗體。

(1)靜態(tài)創(chuàng)建新窗體通過集成開發(fā)環(huán)境中的【File】|【New】|【Application】菜單,創(chuàng)建一個(gè)應(yīng)用程序,目前七十九頁\總數(shù)四百八十二頁\編于十二點(diǎn)

此時(shí)自動(dòng)生成一個(gè)窗體Form1,再打開【File】|【New】|【Form】菜單生成一個(gè)窗體Form2。在Form1中添加兩個(gè)Button、1個(gè)Label組件,F(xiàn)orm2中添加1個(gè)Label組件,即可完成界面設(shè)計(jì)。添加代碼:procedureTForm1.Button1Click(Sender:TObject);//創(chuàng)建按鈕事件begin//關(guān)鍵分析

form2.show;//調(diào)用Show方法顯示Form2窗體end;procedureTForm1.Button2Click(Sender:TObject);beginform1.Close;end;目前八十頁\總數(shù)四百八十二頁\編于十二點(diǎn)程序分析:編譯上述工程時(shí),系統(tǒng)會彈出出錯(cuò)提示信息,單擊“Yes”按鈕,Delphi將自動(dòng)在Unit1單元中添加對Unit2單元的引用。

(2)動(dòng)態(tài)態(tài)創(chuàng)建新窗體在需要某個(gè)窗體時(shí),臨時(shí)創(chuàng)建它,使用后將其立即釋放,這種稱為窗體的動(dòng)態(tài)創(chuàng)建。

3.1.2彈出對話框窗體

Delphi提供內(nèi)部對話框有兩種。第一種:信息輸出對話框Showmessage過程、ShowMessageFmt過程、MessageDlg函數(shù)、MessageDlgPos函數(shù)、CreateMessageDialog函數(shù)。目前八十一頁\總數(shù)四百八十二頁\編于十二點(diǎn)第二種:信息輸入對話框InputBox函數(shù)、InputQuery函數(shù)。1.ShowMessage過程其語法格式為:ShowMessage(<信息內(nèi)容>);

2.ShowMessageFmt過程的語法格式為:

ShowMessageFmt(<信息內(nèi)容>,<參數(shù)組>);3.MessageDlg函數(shù)其語法格式為:<變量>=MessageDlg(<信息內(nèi)容>,<類型>,<按鈕組>,HelpCtx);

4.MessageDlgPos函數(shù)目前八十二頁\總數(shù)四百八十二頁\編于十二點(diǎn)其語法格式為:<變量>=MessageDlgPos(<信息內(nèi)容>,<類型>,<按鈕組>,HelpCtx,X,Y);

可以指定對話框的顯示位置坐標(biāo):X,Y。5.CreatMessageDialog函數(shù)其語法格式為:<變量>=CreatMessageDialog(<信息內(nèi)容>,<類型>,<按鈕組>);6.InputBox函數(shù)其語法格為:<變量>=InputBox(<對話框標(biāo)題>,<信息內(nèi)容>,<默認(rèn)內(nèi)容>);目前八十三頁\總數(shù)四百八十二頁\編于十二點(diǎn)7.InputQuery函數(shù)其語法格式為:<變量>=InputQuery(<對話框標(biāo)題>,<信息內(nèi)容>,<字符串變量>);3.2輸入顯示類組件3.2.1Edit組件編輯框(Edit)是一種通用組件,既可以輸入文本,又可以顯示文本,編輯框組件位于Standard組件板中。

圖3-7編輯框Edit運(yùn)行界面圖目前八十四頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.Edit的主要屬性(1)AutoSelect屬性:設(shè)置編輯框得到焦點(diǎn)時(shí),文本是否自動(dòng)被選中。(2)AutoSize屬性:決定編輯框是否自動(dòng)隨字體的變化而改變大小。(3)Enable屬性:用來設(shè)置編輯框是否能用。(4)BorderSytle屬性:設(shè)置編輯框邊框類型。(5)MaxLength屬性:設(shè)所能接受最大字符數(shù)。(6)PasswordChar屬性:設(shè)置非#0字符時(shí),將代替用戶輸入的字符被顯示。(7)ReadOnly屬性:定編輯框中的文本是否可以編輯。目前八十五頁\總數(shù)四百八十二頁\編于十二點(diǎn)(8)SelStart屬性:被選中文本的開始位置,或光標(biāo)在文本中的位置。(9)SelText屬性:被選中的文本。(10)SelLength屬性:被選中文本的長度。(11)Text屬性:編輯框中的文本內(nèi)容。(12)CharCase屬性:控制編輯框中文本大小寫

3.2.2Label組件標(biāo)簽組件位于Standard組件板中。

圖3-8標(biāo)簽Label

運(yùn)行界面圖目前八十六頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.Label的主要屬性

(1)Caption屬性:用來顯示標(biāo)簽的文本。(2)ShowAccelChar屬性:決定是否將&作為作為熱鍵字符的標(biāo)記。(3)AutoSize屬性:決定標(biāo)簽是否自動(dòng)隨文本的變化而改變大小。(4)Alignment屬性:決定對齊方式。(5)Layout屬性:控制文本顯示在標(biāo)簽的位置。(6)WordWrap屬性:控制是否折行顯示。(7)Transparent屬性:決定背景是否透明。(8)FocusControl屬性:用來獲得焦點(diǎn)組件名。目前八十七頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.2.3Memo組件備注框組件位于Standard組件板中。1.Memo的主要屬性備注框在Delphi中用Tmemo類處理,Tmemo類是Tedit類的衍生類,為了處理多行文本,Tmemo類還增加了一些新的屬性。(1)CaretPos屬性:得到光標(biāo)在編輯區(qū)中位置。

(2)Lines屬性:用來存放Memo對象的文本。(3)Modified屬性:確定文本是否被改動(dòng)過。圖3-10備注框Memo運(yùn)行界面圖目前八十八頁\總數(shù)四百八十二頁\編于十二點(diǎn)(4)ScrollBars屬性:決定備注框是否具有滾動(dòng)條。(5)WordWrap屬性:設(shè)置文本是否能夠換行。(6)WantReturns屬性:用來設(shè)置備注框是否能插入“回車”鍵。(7)WantTabs屬性:用來設(shè)置備注框是否能插入“Tab”鍵。2.Memo的使用【例3.4】利用編輯框,把編輯框中的文本輸入到Memo中。(1)界面設(shè)計(jì)目前八十九頁\總數(shù)四百八十二頁\編于十二點(diǎn)

創(chuàng)建一個(gè)新的工程,在窗體中添加1個(gè)按鈕Button1組件、一個(gè)編輯框Edit1組件和一個(gè)備注框Memo1組件,各組件的屬性設(shè)置如圖:(2)程序設(shè)計(jì)procedureTForm1.Button1Click(Sender:TObject);beginMemo1.Lines.Add(Edit1.Text);edit1.Text:='';edit1.SetFocus;end;圖3-12Memo示例運(yùn)行界面圖目前九十頁\總數(shù)四百八十二頁\編于十二點(diǎn)procedureTForm1.FormActivate(Sender:TObject);beginedit1.SetFocus;end;3.2.4MaskEdit組件

它限制用戶在所定義的位置輸入要求輸入的符號。掩碼編輯框(MaskEdit)組件位于Additional附加組件板”中。1.MaskEdit常用屬性圖3-13Memo示例運(yùn)行界面圖目前九十一頁\總數(shù)四百八十二頁\編于十二點(diǎn)(1)EditMask屬性

EditMask屬性用來控制用戶輸入數(shù)據(jù)格式的掩碼字符串,掩碼字符串EditMask屬性分為三個(gè)部分,用分號分隔。第一部分是掩碼字符串的主要部分,它確定了數(shù)據(jù)的格式;第二部分決定是否將掩碼中的字符串作為數(shù)據(jù)的一部分,0表示不作為數(shù)據(jù)的一部分,1表示作為數(shù)據(jù)的一部分,它將影響屬性;第三部分指出在掩碼中用來代表未輸入數(shù)據(jù)的字符。(2)EditText屬性:用來返回用戶輸入的數(shù)據(jù)。目前九十二頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.3按鈕類組件3.3.1Button組件

Button按鈕在Delphi7.0組件板Standard選項(xiàng)卡中

1.Button的主要屬性(1)Caption屬性:來制定按鈕所顯示的文字。(2)Cancel屬性:決定改按鈕是否為取消按鈕,缺省值為False。(3)Default屬性:用來決定改按鈕是否為默認(rèn)按鈕,缺省值為False。圖3-16Button基本按鈕運(yùn)行界面圖目前九十三頁\總數(shù)四百八十二頁\編于十二點(diǎn)(4)ModalResult屬性:用來決定模式窗體如何被關(guān)閉。2.Button的事件

Button組件常用的事件如表所示。在下述兩種情況下,OnClick事件將被激發(fā):

(1)用鼠標(biāo)單擊按鈕。(2)按鈕獲得焦點(diǎn)時(shí)按下<Enter>鍵或空格鍵。事件

含義

OnClick鼠標(biāo)單擊事件OnMouseDown

鼠標(biāo)按下事件OnMouseMove

鼠標(biāo)移過事件OnMouseUp

鼠標(biāo)釋放事件目前九十四頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.3.2BitBtn組件位于Delphi7.0組件板Additional選項(xiàng)卡中。

1.BitBtn的主要屬性(1)Glyph屬性:為bitBtn制定一個(gè).bmp文件,顯示再按鈕的表面。(2)Kind屬性:決定bitBtn按鈕的種類。(3)Layout屬性:用來控制bitBtn按鈕中位圖與文本的相對位置。默認(rèn)值為blGlyphLeft。(4)Margin屬性:用來控制bitBtn按鈕中位圖與邊界之間的象素個(gè)數(shù)。圖3-17BitBtn按鈕運(yùn)行界面圖目前九十五頁\總數(shù)四百八十二頁\編于十二點(diǎn)(5)Spacing屬性:用來控制bitBtn按鈕中位圖與文本之間的(距離)象素個(gè)數(shù),默認(rèn)值為4。2.BitBtn的事件

BitBtn組件常用的事件如表所示。在下述兩種情況下,OnClick事件將被激發(fā):(1)用鼠標(biāo)單擊按鈕。(2)按鈕獲得焦點(diǎn)時(shí)按下<Enter>鍵或空格鍵。事件含義OnClick

鼠標(biāo)單擊事件OnMouseDown

鼠標(biāo)按下事件OnMouseMove鼠標(biāo)移過事件OnMouseUp鼠標(biāo)釋放事件目前九十六頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.3.3SpeedButton組件快速按鈕(SpeedButton)是一種可以成組工作的按鈕,具有將位圖顯示在按鈕表面的功能;還具有允許其中一個(gè)按鈕被選中(按下)的功能;當(dāng)它單獨(dú)使用時(shí)具有開關(guān)的功能??焖侔粹o位于Additonal組件板中。

SpeedButton的主要屬性有:(1)AllowAllUp屬性:控制是否允許單擊處于按下狀態(tài)的按鈕,使之恢復(fù)到松開狀態(tài)。默認(rèn)值為False。圖3-19快速按鈕SpeedButton運(yùn)行界面圖目前九十七頁\總數(shù)四百八十二頁\編于十二點(diǎn)(2)Down屬性:設(shè)置按鈕是否處于按下狀態(tài)。(3)Flat屬性:當(dāng)取值為True時(shí),按鈕具有Office97工具欄的風(fēng)格。默認(rèn)值為False。(4)GroupIdex屬性:該屬性默認(rèn)值為0,表示不與其他SpeedButton成組。3.4復(fù)選框、單選按鈕和單選按鈕組3.4.1CheckBox組件位于Delphi7.0組件板Standard選項(xiàng)卡中。

圖3-21復(fù)選框CheckBox目前九十八頁\總數(shù)四百八十二頁\編于十二點(diǎn)復(fù)選框CheckBox具有選中和未被選中兩種狀態(tài),未選中狀態(tài),選中狀態(tài)。還有一種不確定狀態(tài),表示既非選中又非未選中。1.CheckBox的主要屬性(1)Checked屬性:用于表明CheckBox是否被選中。(2)State屬性:屬性State進(jìn)一步確定CheckBox狀態(tài)。有3種值:cbChecked、cbUnchecked和cbGrayed,分別為選中、未選中和不確定。(3)AllowGrayed屬性:為True時(shí),復(fù)選框有3種選擇:為False時(shí),只有選中和未選中狀態(tài)。目前九十九頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.4.2RadioButton組件位于Delphi7.0組件板Standard選項(xiàng)卡中。RadioButton的主要屬性有:

Checked屬性:表明CheckBox是否被選中。RadioButton有兩種狀態(tài),如果當(dāng)Checked屬性為True時(shí),表示選中狀態(tài),如果當(dāng)Checked屬性為False時(shí),表示未選中狀態(tài)。3.4.3RadioGroup組件位于Delphi7.0組件板Standard選項(xiàng)卡中。圖3-23單選按鈕RadioButton目前一百頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.RadioGroup的主要屬性(1)Columns屬性屬性Columns用于設(shè)置單選按鈕組中按鈕的列數(shù)。范圍1~16,默認(rèn)值為1。(2)Items屬性:用于設(shè)置各種單選按鈕標(biāo)題。(3)ItemIndex屬性:單選按鈕組中被選中按鈕(從0開始)的序號。默認(rèn)值為-1,表示組中按鈕均未被選中。圖3-25單選按鈕組RadioGroup

目前一百零一頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.5列表框、組合框3.5.1ListBox組件當(dāng)列表框不能同時(shí)顯示所有選擇項(xiàng)時(shí),將自動(dòng)加上一個(gè)垂直滾動(dòng)條,使用戶可以上下滾動(dòng)列表框,以查閱所有的選項(xiàng)。列表框位于組件板Standard選項(xiàng)卡中。ListBox的主要屬性:(1)Items屬性:列表框中選項(xiàng)的集合。(2)ItemsIndex屬性:為選項(xiàng)的索引值。圖3-28列表框ListBox運(yùn)行界面圖目前一百零二頁\總數(shù)四百八十二頁\編于十二點(diǎn)(3)Stored屬性:決定選項(xiàng)是否排序。(4)Columns屬性:決定列表框的列數(shù)。(5)MultiSelect屬性:定是否可以選擇多項(xiàng)。(6)SelCount屬性:被選中的項(xiàng)的數(shù)目,只讀。(7)Selected屬性:設(shè)置或返回是否被選中。(8)IntegralHelght屬性:True自動(dòng)調(diào)整框的高度使每行的高度(IntemHeight)可以完整地被顯示。False不自動(dòng)調(diào)整框的高度,非完整高度行被顯示在框的底部。(9)ItemHeight屬性:控制列表框中行的高度。目前一百零三頁\總數(shù)四百八十二頁\編于十二點(diǎn)(10)Style屬性lbStandard固定Font.Size屬性與ItemHeight屬性之比。lbOwnerDrawFixed可以調(diào)整ItemHeight,并將自動(dòng)調(diào)整框的高度以適應(yīng)行高。LbOwnerDrawVariable可以調(diào)整ItemHeight屬性,需手動(dòng)調(diào)整框的高度以適應(yīng)行高。3.5.2ComboBox組件兼有EditBox和ListBox兩者功能,用戶可以通過鍵入文本或選擇列表中項(xiàng)目來進(jìn)行選擇。組合框位于組件板Standard選項(xiàng)卡中。目前一百零四頁\總數(shù)四百八十二頁\編于十二點(diǎn)1.組合框的主要屬性(1)Items屬性:列表框中選項(xiàng)的集合。(2)ItemsIndex屬性:為選項(xiàng)的索引值。(3)Stored屬性:決定選項(xiàng)是否排序。(4)DorpDownCount屬性:控制組合框下拉列表所能顯示選項(xiàng)的最大個(gè)數(shù)。(5)SelText屬性:存儲顯示于編輯區(qū)中被選中項(xiàng)的內(nèi)容。(6)Style屬性:決定組合框的風(fēng)格。圖3-29組合框ComboBox目前一百零五頁\總數(shù)四百八十二頁\編于十二點(diǎn)3.6滾動(dòng)條要想自己操縱窗口的滾動(dòng),就要用到TScrollBar組件。當(dāng)在滾動(dòng)條上操作時(shí),將觸發(fā)OnScroll事件,TScrollBar組件直接繼承于TwinControl中,位于Standard選項(xiàng)卡中。1.ScrollBar主要屬性、方法與事件(1)LargeChange屬性:當(dāng)用戶單擊滾動(dòng)條時(shí),滾動(dòng)距離由LargeChange屬性設(shè)置,默認(rèn)1。

(2)Max、Min屬性:設(shè)置滾動(dòng)條可滾動(dòng)的范圍圖3-31滾動(dòng)條Scrollbar目前一百零六頁\總

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論