




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
Delphi教程完整版演示文稿目前一頁\總數(shù)四百八十二頁\編于十二點優(yōu)選Delphi教程完整版ppt目前二頁\總數(shù)四百八十二頁\編于十二點課程介紹Delphi是著名的Borland公司開發(fā)的可視化軟件開發(fā)環(huán)境,自1995年問世以來,帶來了程序設(shè)計中的一場重大變化。Delphi作為第四代編程語言,具有簡單、高效和功能強大等特點,這些特點使得它為廣大程序開發(fā)者所青睞。目前三頁\總數(shù)四百八十二頁\編于十二點第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ù)四百八十二頁\編于十二點◆Delphi3對其組件庫進行增強,完全支持ActiveX組件及其創(chuàng)建?!鬌elphi4提供了ObjectPascal語言的擴展,但系統(tǒng)穩(wěn)定性較差?!?999年推出Delphi5增強了數(shù)據(jù)庫的功能◆2001年6月推出Delphi6,增加了大量的新組件,使組件數(shù)目達350多個,以滿足網(wǎng)絡(luò)開發(fā)的需要?!?002年8月推出Delphi7,在集成開發(fā)環(huán)境IDE、Web、數(shù)據(jù)庫、編譯器、模型生成支持及組件庫等很多方面進行了改進目前五頁\總數(shù)四百八十二頁\編于十二點1.2Delphi7IDE1.2.1認(rèn)識集成開發(fā)環(huán)境
Delphi7的IDE主要包括7個部分:主窗口、組件面板、工具欄、窗體設(shè)計器、代碼編輯器、對象觀察器和代碼瀏覽器。
圖1-1Delphi7的IDE目前六頁\總數(shù)四百八十二頁\編于十二點1.主窗口主要包括:菜單欄、工具欄、標(biāo)題欄和組件面板
Delphi7的主菜單包括11個下拉菜單注意:工具欄上的按鈕都提供了描述該按鈕功能的tooltip,除了組件面板IDE有6個獨立的工具欄IDE工具欄的定制功能并不僅限于配置需要顯示的按鈕,還可以調(diào)整工具欄、組件面板和菜單欄在主窗口中的位置。
圖1-2Delphi7的主窗圖口目前七頁\總數(shù)四百八十二頁\編于十二點
Delphi7組件板包含了350多個組件,是Delphi可視化編程的核心部件,它由27個選項卡組成組件面板如圖1-4所示
包含了IDE中安裝的所有的VCL組件和ActiveX組件將組件板上的組件添加到窗體上的三種方法:①單擊組件板上的所需組件的按鈕,然后在窗體適當(dāng)位置拖動鼠標(biāo)畫出組件,即可將組件添加到窗體的指定位置上圖1-4Delphi7的組件面板目前八頁\總數(shù)四百八十二頁\編于十二點②雙擊組件板上的所需組件的按鈕,即可將組件添加到窗體的中心位置③按下<Shift>鍵不放,單擊組件板上的所需組件的按鈕,所選組件出現(xiàn)藍(lán)色邊框,同時對象選擇按鈕將彈起組件板中的組件分為可視組件與非可視組件
2.窗體設(shè)計器在創(chuàng)建新的項目時,窗體設(shè)計器是一個空白的窗口??梢杂檬髽?biāo)調(diào)整組件在窗體設(shè)計器上的位置和大小,還可以用對象觀察器和代碼編輯器來控制組件的外觀和行為。目前九頁\總數(shù)四百八十二頁\編于十二點3.對象觀察器利用對象觀察器,可以修改窗體或組件的屬性,或者使它們能夠響應(yīng)不同的事件。
屬性(Property)是一些數(shù)據(jù),如高度、顏色、字體等,它們決定了組件在屏幕上的外觀。事件(Event)則是一種消息處理機制,它能夠捕捉某種情況的發(fā)生并做出反應(yīng),像鼠標(biāo)單擊和窗口打開就是兩種典型的事件。對象觀察器類包括Properties選項卡和Events選項卡目前十頁\總數(shù)四百八十二頁\編于十二點
下圖兩個對象觀察器,左邊一個按種類排序,右邊一個按名字排序。注意:幫助系統(tǒng)是和對象觀察器緊密結(jié)合在一起的,想了解某個屬性或事件的幫助信息,只要在該屬性或事件上按下F1
鍵
圖1-5按種類或名稱查看ObjectInspector目前十一頁\總數(shù)四百八十二頁\編于十二點4.代碼編輯器
代碼編輯器是輸入代碼來指定應(yīng)用程序行為的地方,也是Delphi根據(jù)應(yīng)用程序中的組件自動生成代碼的地方。當(dāng)向應(yīng)用程序中加入一個窗體時,Delphi會自動創(chuàng)建一個新的單元,并添加到代碼編輯器頂部的標(biāo)簽中。5.代碼瀏覽器
以一種樹狀視圖方式顯示列在代碼編輯器中的單元文件。通過它,可以方便地在單元文件中漫游或在單元文件中加入新的元素或者把已有的文件改名。要記住代碼瀏覽器和代碼編輯器有一對一的關(guān)系。目前十二頁\總數(shù)四百八十二頁\編于十二點6.源代碼生成器當(dāng)對窗體設(shè)計器中可視化組件進行操作時DelphiIDE自動生成ObjectPascal源代碼。當(dāng)用【File】|【New】|【Application】菜單命令創(chuàng)建一個新的項目時,將看到屏幕上出現(xiàn)一個空白的窗體設(shè)計器,同時,代碼編輯器中會自動出現(xiàn)一些代碼,如下所示:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs;目前十三頁\總數(shù)四百八十二頁\編于十二點typeTForm1=class(TForm)private
{Privatedeclarations}public
{Publicdeclarations}
end;varForm1:TForm1;implementation{$R*.dfm}end.目前十四頁\總數(shù)四百八十二頁\編于十二點從上述源代碼清單中可以看出,窗體對象是從TForm繼承下來的。下面這一行非常重要:
{$R*.dfm}
Pascal語言中的$R指令用于加載一個外部資源文件。*.dfm文件中包含在窗體設(shè)計器中創(chuàng)建的表單的二進制代碼。其中的“*”表示與當(dāng)前單元文件同名的文件。項目文件的擴展名是.dpr可以選擇主菜單下的【Project】|【ViewSource】命令把項目源文件調(diào)入代碼編輯器。目前十五頁\總數(shù)四百八十二頁\編于十二點如下用程序示例的項目文件:
programProject1;usesForms,Unit1in'Unit1.pas'{Form1};{$R*.res}beginApplication.Initialize;Application.CreateForm(TForm1,Form1);Application.Run;end.當(dāng)添加表單和單元時將出現(xiàn)在uses子句中
目前十六頁\總數(shù)四百八十二頁\編于十二點1.2.2基于組件的編程思想
Ⅰ.早期DOS操作系統(tǒng)和C語言主導(dǎo)的時代,“數(shù)據(jù)結(jié)構(gòu)+算法”成為構(gòu)建軟件惟一方式
Ⅱ.C++語言和面向?qū)ο蠹夹g(shù)
Ⅲ.20世紀(jì)90年代中期流行一種嶄新的程序設(shè)計概念:軟件可以由可互換的組件構(gòu)成
組件是一種通過公開的屬性、方法、事件,是可以重復(fù)使用的一種經(jīng)過編譯的二進制文件,其文件名可以是.OCX或者是.dll,如命令按鈕、復(fù)選框、單選框、滾動條等都是常見的組件。
目前十七頁\總數(shù)四百八十二頁\編于十二點1.2.3Delphi7的特點
Delphi最顯著的特點就是高效性和穩(wěn)定性,主要體現(xiàn)在以下4個方面:●可視化開發(fā)環(huán)境的性能?!窬幾g器的速度和已編譯代碼的效率?!窬幊陶Z言的功能及其復(fù)雜性?!褙S富的VCL1.可視化開發(fā)環(huán)境
可視化開發(fā)環(huán)境通??煞譃?個部分:編輯器、調(diào)試窗口和窗體設(shè)計器。目前十八頁\總數(shù)四百八十二頁\編于十二點2.編譯器的速度和已編譯代碼的效率Pascal編譯器最著名特點就是速度快,而Delphi正是建立在這種編譯器基礎(chǔ)之上的。增加了鏈接和各種緩存策略,尤其是在VisualC++和C++Builder中。3.編程語言的功能及其復(fù)雜性
匯編是一種最有力的語言,即便是用匯編開發(fā)最簡單的應(yīng)用程序,難度也非常大,還可能一無所獲。
4.豐富的VCLVCL是Delphi7最重要的組成部分,包含不同種類的組件。
目前十九頁\總數(shù)四百八十二頁\編于十二點1.2.4幫助的使用(1)當(dāng)遇到問題時,可以嘗試按下【F1】鍵,一般情況下Delphi都會準(zhǔn)確地定位。(2)如果需要瀏覽系統(tǒng)的一些幫助內(nèi)容,比如說對象Pascal語言,可以通過菜單【Help】|【DelphiHelp】命令打開【幫助主題:DelphiHelp】對話框,在目錄標(biāo)簽中展開相關(guān)條目,進行系統(tǒng)學(xué)習(xí)。3)當(dāng)使用WindowsAPI函數(shù)時,通過【Help】|【DelphiHelp】打開的【幫助主題:DelphiHelp】對話框中,在【索引】選項卡中可能查不到有關(guān)的幫助信息,有兩種解決辦法:目前二十頁\總數(shù)四百八十二頁\編于十二點一種辦法是在代碼編輯器中輸入WindowsAPI函數(shù)的名稱,然后將光標(biāo)定位到該名稱中,接著按下【F1】鍵。另一種辦法是通過【Help】|【W(wǎng)indowsSDK】打開幫助文件Win32.hlp,在【索引】選項卡中查找。(4)幫助文件打開時,要瀏覽相關(guān)內(nèi)容,可以按下工具欄中的【>>】或【<<】按鈕,通常這樣是在同一個主題中瀏覽。通過一些SeeAlso熱鏈接,也可以查看相關(guān)的幫助內(nèi)容。(5)在組件欄上右擊,通過快捷菜單的Help命令,可以查看有關(guān)組件的幫助內(nèi)容。目前二十一頁\總數(shù)四百八十二頁\編于十二點(6)在Delphi集成開發(fā)環(huán)境中,通過【Help】|【Customize】命令可以打開【OpenHelp】窗口,在該窗口中可以對幫助文件進行管理,其中包括幫助內(nèi)容、幫助索引、鏈接位置和幫助工程文件等的管理。1.3簡單Delphi程序設(shè)計
Delphi7編寫應(yīng)用程序包括新建應(yīng)用程序、設(shè)置窗體屬性、添加組件、設(shè)置組件屬性、添加事件、編寫事件響應(yīng)代碼、編譯運行等1.新建應(yīng)用程序目前二十二頁\總數(shù)四百八十二頁\編于十二點啟動Delphi7,選擇【File】|【New】|【Application】菜單,新建一個應(yīng)用程序。2.設(shè)置窗體屬性
單擊【ObjectInspector】,在對象觀察器中打開【Properties】選項卡,單擊Caption屬性右側(cè),輸入窗體的新標(biāo)題“窗口”。3.向窗體中添加組件
單擊Standard選項卡上的Button組件,將鼠標(biāo)指向窗體中的任意位置(標(biāo)題欄除外),單擊鼠標(biāo),即可把Button1組件放入窗體中。或者直接雙擊組件面板上的Button組件,也可以在窗體中添加一個Button1組件。目前二十三頁\總數(shù)四百八十二頁\編于十二點4.設(shè)置組件屬性選中組件,單擊ObjectInspector的標(biāo)題欄以激活對象觀察器,并選擇Properties選項卡。在對象觀察器中單擊要設(shè)置的屬性,進行屬性設(shè)置。5.添加事件選中要添加事件的組件,激活對象觀察器,并選擇Event選項卡,在對象觀察器中單擊要添加的事件,在其右側(cè)輸入事件的響應(yīng)函數(shù)名稱,然后回車即可。
6.編寫事件響應(yīng)代碼
目前二十四頁\總數(shù)四百八十二頁\編于十二點
選定要編寫事件響應(yīng)代碼的組件,打開Event選項卡,雙擊要編寫響應(yīng)代碼的事件右側(cè)的空白部分,進入代碼編輯窗口。
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ù)四百八十二頁\編于十二點form1.Width:=form1.Width-10;//窗口寬度減10end;
procedureTForm1.Button3Click(Sender:TObject);//關(guān)閉窗口beginclose;//退出end;7.編譯運行程序圖1-6例程運行界面目前二十六頁\總數(shù)四百八十二頁\編于十二點1.4Delphi上機步驟1.啟動程序2.添加組件在窗體設(shè)計器中添加如圖1-7所示的各組件。3.設(shè)置組件屬性4.編寫代碼組件屬性設(shè)置完成后,編寫如下代碼:圖1-7窗體布局圖目前二十七頁\總數(shù)四百八十二頁\編于十二點procedureTForm1.Edit1Change(Sender:TObject);//編輯框1中的內(nèi)容改變時的事件varstringlength:integer;//定義整型變量,記錄編輯框1中字符的個數(shù)beginstringlength:=edit1.GetTextLen;//得到編輯框1中字符個數(shù)edit2.Text:=inttostr(stringlength);//編輯框2顯示編輯框1中字符個數(shù)end;procedureTForm1.Button1Click(Sender:TObject);//關(guān)閉窗口beginclose;end;目前二十八頁\總數(shù)四百八十二頁\編于十二點5.保存工程 保存工程分為保存單元文件和保存項目文件兩步。第一步是保存單元文件,單擊工具欄上的Save按鈕,將打開SaveUnit1As窗口,默認(rèn)的單元文件名是“Unit1.pas”,以“.pas”為擴展名,單元文件名根據(jù)需要可以另取。第二步是保存項目文件,單擊工具欄上SaveProject1As按鈕,默認(rèn)的項目文件名是“Project1.dpr”,工程文件名根據(jù)需要可以另取以“.dpr”為擴展名目前二十九頁\總數(shù)四百八十二頁\編于十二點6.運行工程 保存工程結(jié)束后即可運行工程小結(jié)在本章中,主要介紹了Delphi的產(chǎn)生和發(fā)展,Delphi的特點,使用Delphi進行程序設(shè)計的一些基礎(chǔ)知識。本章的重點是Delphi的開發(fā)環(huán)境和開發(fā)方法,通過實例介紹了Delphi的程序設(shè)計和上機操作的一般步驟。圖1-10工程運行界面圖目前三十頁\總數(shù)四百八十二頁\編于十二點第2章Delphi語法基礎(chǔ)
2.1保留字與標(biāo)識符2.1.1標(biāo)識符標(biāo)識符是ObjectPascal語言中各種成分的名稱,這些成分包括變量(Var)、常量(Const)、類型(Type)、過程(Procedure)、函數(shù)(Function)、方法(Method)、單元(Unit)等。
目前三十一頁\總數(shù)四百八十二頁\編于十二點標(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ù)四百八十二頁\編于十二點2.自定義標(biāo)識符程序員根據(jù)程序設(shè)計的需要,自己定義的常量、變量、類型、函數(shù)、過程等所取的名字。自定義標(biāo)識符可以由任意長的一個不帶空格的字符串組成,包括字母A~Z、a~z、數(shù)字0~9和下劃線“_”等。定義標(biāo)識符需要遵循以下規(guī)則:(1)標(biāo)識符不區(qū)分大小寫;(2)標(biāo)識符只能以字母或下劃線開頭,不能以數(shù)字開頭;(3)標(biāo)識符可任意長度,但只有前225個字符有效;(4)標(biāo)識符中間不允許有空格;
目前三十三頁\總數(shù)四百八十二頁\編于十二點(5)不允許使用ObjectPascal語言的保留字作為標(biāo)識符。3.限定標(biāo)識符在Delphi程序中可引用多個單元,而各個單元中全局變量、函數(shù)、過程等可能會同名,在引用時需用限定標(biāo)識符來區(qū)分它們:Var
Y:real;Y:=System.cos(pi);其中System稱為限定符,而System.cos稱為限定標(biāo)識符。目前三十四頁\總數(shù)四百八十二頁\編于十二點2.1.2保留字保留字由系統(tǒng)規(guī)定具有特定意義,不能被重新定義或作他用,定義了65個保留字。注意:1.單詞at和on具有特殊含義,不要與它們同名。2.保留字和ObjectPascal一樣不區(qū)分大小寫。3.Delphi集成開發(fā)環(huán)境的代碼編輯器中,黑體顯示保留字和指令字,定義時不要與這些黑體字一樣。
目前三十五頁\總數(shù)四百八十二頁\編于十二點ObjectPascal的保留字
and
arrayasasmbegincaseclass
constconstructor
destructor
dispinterfacedivdodowntoelseendexcept
exportsfilefinalizationfinallyforfunction
goto
ifimplementationininherited
initializationinline
interface
islabellibrarymodnil
not
objectoforoutpackedprocedureprogrampropertyraise
recordrepeatresourcestring
setshlshrstring
thenthreadvartotrytype
unit
untilusesvarwhilewithxor目前三十六頁\總數(shù)四百八十二頁\編于十二點2.1.3指令符指令字只在特殊的程序位置、或當(dāng)上下文關(guān)聯(lián)時有意義的程序區(qū)段有自己特殊的意義,而在其他場合,用戶可對其重新定義,即可將其定義為標(biāo)識符,ObjectPascal不會指示出錯,當(dāng)用戶重新定義這些指令字后,在作用域內(nèi)它們就失去了原來的意義了。
ObjectPascal中規(guī)定的指令符有39個說明:指令符private、protected、public、published和automated在定義對象類型時也作為保留字,而在其他場合則作為指令符。目前三十七頁\總數(shù)四百八十二頁\編于十二點2.1.4注釋注釋可增加程序的可讀性和可維護性。
ObjectPascal語言中注釋有三種形式:1.組合符號“{”與“}”的成對使用表示它們之間的內(nèi)容為注釋部分。2.組合符號“(*”與“*)”的成對使用表示它們之間的內(nèi)容為注釋部分。3.符號“//”的單個使用表示所在行的該符號之后的內(nèi)容為注釋。目前三十八頁\總數(shù)四百八十二頁\編于十二點注意:1.注釋符“{”與“}”、“(*”與“*)”在使用時不支持注釋的嵌套,而且必須成對使用。2.對于單行和少量幾行注釋使用符號“//”,對于大塊注釋使用“{”和“}”或“(*”和“*)”。3.有時可利用注釋在代碼中形成一個醒目標(biāo)志。4.在注釋符“{”或“(*”后緊接著是一個美元符號“$”時,表示該句是一個編譯器指令,它與普通的注釋不同,通常用來對編譯過程進行設(shè)置。目前三十九頁\總數(shù)四百八十二頁\編于十二點2.2數(shù)據(jù)類型描述客觀事物的數(shù)、字符以及所有能輸入到計算機中并被計算機程序加工處理的符號的集合稱為數(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ù)四百八十二頁\編于十二點2.高級數(shù)據(jù)類型體現(xiàn)了特殊的數(shù)據(jù)結(jié)構(gòu),在使用之前必須由用戶自己定義。3.?dāng)?shù)據(jù)類型中整型、字符型、布爾型、枚舉型和子界型被稱為順序類型,其取值是一個有序集合,每一個可能取值都與順序有關(guān)。2.2.1數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù)可分為整數(shù)類型和實數(shù)類型。1.整數(shù)類型整數(shù)類型是存儲整數(shù)數(shù)據(jù)的類型,分為基本整形和一般整形。目前四十一頁\總數(shù)四百八十二頁\編于十二點基本整形:短整型、小整型、長整型、64位整型、字節(jié)型、字型、長字型一般整形:整型、序數(shù)型注意:盡量使用一般整型Integer和Cardinal,可以最大限度發(fā)揮CPU和操作系統(tǒng)的性能。
2.實數(shù)類型實數(shù)類型是存儲實數(shù)數(shù)據(jù)的類型,分為基本實型和一般實型。基本實型:單精度實型、擴展型、雙精度實型、貨幣型一般實型:實型目前四十二頁\總數(shù)四百八十二頁\編于十二點注意:Real類型與Double類型完全等價。Currency類型至少有4位有效的小數(shù)位。
2.2.2字符型數(shù)據(jù)
ObjectPascal中的字符型數(shù)據(jù)可以分為字符型和字符串型2類7種。1.字符類型
ObjectPascal包括3種形式的字符型數(shù)據(jù)類型
名稱
字節(jié)數(shù)
取值范圍
Ansi字符型
AnsiChar1擴展ANSI字符集
寬字符型
WideChar2UniCode字符集
字符型
Char
1(2)擴展ANSI字符集
目前四十三頁\總數(shù)四百八十二頁\編于十二點說明:(1)前2種為基本字符類型后一種為一般類型。(2)Char與AnsiChar完全等價,但Char常用。2.字符串類型字符串類型是存儲字符串?dāng)?shù)據(jù)的類型,ObjectPascal包括了4種形式的字符串型數(shù)據(jù)
類型
名稱
最大長度
所需內(nèi)存空間
短字符串型
ShortString255個字符
2~256B
長字符串型
AnsiString231個字符
4~2GB
寬字符串型
WideString230個字符
4~2GB
字符串型
String
231個字符
4~2GB
目前四十四頁\總數(shù)四百八十二頁\編于十二點說明:(1)AnsiString類型的定義是動態(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)系運算和條件語句的邏輯運算,包括4種形式的布爾型數(shù)據(jù)。目前四十五頁\總數(shù)四百八十二頁\編于十二點說明:(1)后3種類型是為了兼容其他語言而設(shè)置的,編程時應(yīng)盡量使用Boolean類型。(2)Boolean取值為False和True兩個符號常量。類型
名稱
字節(jié)數(shù)
取值
布爾型
Boolean1只能為0(False)或1(True)
字節(jié)布爾型
ByteBool10(False)或非0(True)
寬布爾型WordBool20(False)或非0(True)
長布爾型LongBool40(False)或非0(True)
目前四十六頁\總數(shù)四百八十二頁\編于十二點2.3常量與變量2.3.1常量常量即在程序的執(zhí)行過程中其值不能改變的量。常量有兩種,一種是常量值本身,也稱為直接常量;另一種是要用聲明定義的標(biāo)識符表示的常量,也稱為聲明常量。聲明常量又可以分為符號常量和類型常量。1.直接常量直接常量是指在程序中直接引用的常數(shù),如整型常數(shù)、實型常數(shù)、字符型常數(shù)、字符串型常數(shù)和布爾型常數(shù)。2.聲明常量目前四十七頁\總數(shù)四百八十二頁\編于十二點(1)符號常量在程序中,某一個常數(shù)反復(fù)多次出現(xiàn),可以定義一個標(biāo)識符來代表該常數(shù),這個標(biāo)識符就是符號常量,其值在定義后不會改變。也稱純常量。定義符號常量使用常量說明語句,其語法格式為:Const<常量名1>=<常量值1>;
…<常量名n>=<常量值n>;其中Const是保留字,表示常量定義段開始。目前四十八頁\總數(shù)四百八十二頁\編于十二點注意:●保留字Const可單獨一行也可與常量一行?!癫荒茉诔绦蛑薪o常量另行賦值,否則將導(dǎo)致語法錯誤?!馜elphi由常量值判斷常量名屬于哪種類型。(2)類型常量類型常量用于保存數(shù)組、記錄、過程以及指針等類型的值,不能出現(xiàn)在常量表達式中。在默認(rèn)的編譯器狀態(tài)下,類型常量的值可改變,但當(dāng)在程序中加入編譯命令{$j-}時,則類型常量的值在運行期就無法改變。目前四十九頁\總數(shù)四百八十二頁\編于十二點聲明類型常量的語法規(guī)則為:Const
<類型常量名>:<類型>=<常量值>;其中類型是除文件型和可變型的所有類型,常量值可以是和類型相應(yīng)的常量表達式。
2.3.2變量1.變量的聲明變量在單元、函數(shù)或過程的聲明部分進行聲明,聲明的位置決定了變量的作用域。聲明包括兩部分:變量名和它所屬的類型,變量聲明的語法格式為:目前五十頁\總數(shù)四百八十二頁\編于十二點Var<變量名1>:<類型名1>;…<變量名n>:<類型名n>;當(dāng)多個變量具有相同數(shù)據(jù)類型時,格式如下:Var
<變量名1>,<變量名2>,…<變量名n>:<類型名>;其中,Var是保留字,表示變量聲明段的開始;同類型的<變量名>可超過一個,<變量名>間用“,”分隔;<類型名>可以是基本數(shù)據(jù)類型或是由用戶定義的高級數(shù)據(jù)類型;目前五十一頁\總數(shù)四百八十二頁\編于十二點2.變量的使用一旦聲明了一個變量應(yīng)及時對它進行初始化,最簡單方法就是給變量賦值,在表達式中使用變量。2.4運算符與表達式按照操作數(shù)數(shù)目的多少來分,運算符分為下面兩類:單目運算符和雙目運算符。單目運算符一般放在操作對象的前面,雙目運算符都放在兩個操作數(shù)之間。表達式是表示某個求值規(guī)則的運算公式,由運算符和配對的圓括號將常量、變量、函數(shù)、對象等操作數(shù)以合理的形式組合而成。目前五十二頁\總數(shù)四百八十二頁\編于十二點2.4.1算術(shù)運算符與算術(shù)表達式1.算術(shù)運算符算術(shù)運算符對浮點數(shù)和整數(shù)進行加、減、乘、除和取模運算,取正“+”和取負(fù)“-”是單目運算符,其他均為雙目運算符。說明:(1)+、-、*運算中,參加運算的數(shù)可以是整型和實型,結(jié)果自動向精度高的類型轉(zhuǎn)化。(2)參加除法運算“/”,結(jié)果都是實型的商。(3)參加整數(shù)除法“Div”和求余運算“Mod”的數(shù)必須是整型,結(jié)果也是整型數(shù),符號與被除數(shù)的符號相同,小數(shù)部分被舍去。(4)在表達式a/b、aDivb和aModb中,如果b的值為0,將會觸發(fā)一個錯誤。目前五十三頁\總數(shù)四百八十二頁\編于十二點2.算術(shù)運算符的優(yōu)先級同級運算自左至右,如果含有括號,則先計算括號內(nèi)表達式的值。3.算術(shù)表達式將數(shù)學(xué)式改寫為算術(shù)表達式,考慮三個問題:一是語法,二是優(yōu)先級,三是類型。優(yōu)先順序
運算符
1+、-(取正、取負(fù))
2*、/(法、除法)
3Div、Mod(整除、求余)4+、—(加法、減法)
目前五十四頁\總數(shù)四百八十二頁\編于十二點說明:(1)數(shù)學(xué)式中省略的運算符和表示函數(shù)參數(shù)的括號必須添加上去(2)必須注意優(yōu)先級的處理,恰當(dāng)利用標(biāo)準(zhǔn)函數(shù),注意數(shù)據(jù)類型。2.4.2邏輯運算符與布爾表達式
邏輯運算符可分為布爾運算符、位運算符和關(guān)系運算符。1.布爾運算符只能對兩個布爾型操作數(shù)進行運算,結(jié)果仍為布爾型,True或False。目前五十五頁\總數(shù)四百八十二頁\編于十二點其中,NOT是求“非”,為一元運算符;AND是求“與”,OR是求“或”,XOR是求“異或”,均為二元運算符。2.位運算符運算符
操作舉例操作數(shù)類型
結(jié)果類型
功能說明
NOT
NOTx
integerinteger即按二進制形式將每位求反ANDaANDbintegerinteger將兩者相對應(yīng)的位進行AND運算ORaORb
integerinteger將兩者相對應(yīng)的位進行OR運算XOR
aXORbintegerinteger將兩者相對應(yīng)的位進行取XOR運算,兩者不同時結(jié)果為1
SHLaSHLbintegerinteger將a的二進制值向左移動b位,左移一位相當(dāng)于乘2
SHRaSHRbintegerinteger將a的二進制向右移動b位,右移一位相當(dāng)于除2目前五十六頁\總數(shù)四百八十二頁\編于十二點注意:右移操作時原值的低位丟失,高位補0;左移操作時原值的高位丟失,低位補0。3.關(guān)系運算符關(guān)系符
操作
操作數(shù)類型
結(jié)果類型
=等于簡單類型,字符串或可變類型,類,類引用,指針,集合類型Boolean<>不等于簡單類型,字符串或可變類型,類,類引用,指針,集合類型Boolean<小于簡單類型,字符串或可變類型Boolean>大于簡單類型,字符串或可變類型Boolean<=小于等于簡單類型,字符串或可變類型Boolean>=大于等于簡單類型,字符串或可變類型Boolean目前五十七頁\總數(shù)四百八十二頁\編于十二點4.布爾表達式布爾表達式由布爾運算符和布爾類型的操作數(shù)所組成,包括關(guān)系運算表達式和運算結(jié)果為布爾類型的函數(shù),如Odd(x)、FileExists(x)、等。但位運算符的結(jié)果是整數(shù)類型,不能直接作為布爾操作數(shù)。2.4.3字符串運算符連接運算符“+”主要用于連接兩個或更多的字符串。最簡單的字符串表達式是字符常量、字符串常量、字符變量、字符串變量或字符函數(shù)的引用。字符串表達式格式為:目前五十八頁\總數(shù)四百八十二頁\編于十二點<字符串表達式>+{<字符串>|<字符>}當(dāng)兩個字符串用連接運算符連接起來后,第二個字符串直接添加到第一個字符串的尾部,結(jié)果是包含兩個源字符串全部內(nèi)容的新字符串。如果要把多個字符串連接起來,每兩個字符串之間都要用“+”號分隔。2.4.4運算符的優(yōu)先級優(yōu)先順序
運算符
分類描述
1@(取地址),NOT,-一元運算符2*,/,DIV,MOD,AND,SHL,SHR乘除及類型強制轉(zhuǎn)換運算符3+,-,OR,XOR加減運算符4=,<>,<,>,<=,>=,in,is關(guān)系、集合成員及類型比較運算符目前五十九頁\總數(shù)四百八十二頁\編于十二點2.5常用系統(tǒng)函數(shù)與過程2.5.1數(shù)值運算函數(shù)Delphi的數(shù)值運算函數(shù)包含了常用的數(shù)學(xué)函數(shù)(如三角函數(shù)、對數(shù)函數(shù)等)和適合計算機數(shù)據(jù)處理的其他函數(shù)(如求數(shù)組中的最大值、求三角形的斜邊長等)。2.5.2字符處理函數(shù)對字符的處理主要包括:大小寫轉(zhuǎn)換、比較先后順序、合并、查找、截取、插入、求長度以及類型轉(zhuǎn)換等。
2.5.3日期時間函數(shù)調(diào)用日期時間函數(shù)可對日期和時間進行處理目前六十頁\總數(shù)四百八十二頁\編于十二點2.5.4順序類型函數(shù)1.順序類型順序類型指整型、字符型、布爾型、枚舉型、子界型5種數(shù)據(jù)類型,如下所述:(1)整數(shù)的的序數(shù)是其自身;(2)字符的序數(shù)是其ASCII碼;(3)布爾型數(shù)據(jù):False序數(shù)為0,True為1;(4)枚舉型第一個數(shù)據(jù)序數(shù)為0,其余類推;(5)子界型第一個數(shù)據(jù)序數(shù)為1,其余類推。除第一個序數(shù),每一個都有一個前趨值;除最后一個序數(shù),每一個都有一個后繼值。目前六十一頁\總數(shù)四百八十二頁\編于十二點2.順序函數(shù)2.6語句2.6.1語句的基本概念按執(zhí)行時間可分為:聲明語句和可執(zhí)行語句。順序函數(shù)
引用形式
函數(shù)功能描述
序數(shù)函數(shù)Ord(x);返回數(shù)據(jù)x的序數(shù)前趨函數(shù)Pred(x);返回數(shù)據(jù)x的前趨值。如果將Pred函數(shù)用于第一個數(shù)據(jù),就可能產(chǎn)生一個編譯時的錯誤后繼函數(shù)Succ(x);返回數(shù)據(jù)x的后繼值。如果將Succ函數(shù)用于最后一個數(shù)據(jù),就可能產(chǎn)生一個編譯時的錯誤首序數(shù)函數(shù)Low(x);返回順序型數(shù)據(jù)x取值集合中的第一個值(序數(shù)最小)。它還可以返回數(shù)組的第一個元素末序數(shù)函數(shù)High(x);返回順序型數(shù)據(jù)x取值集合中的最末一個值(序數(shù)最大),它還可以返回數(shù)組的最末一個元素目前六十二頁\總數(shù)四百八十二頁\編于十二點
聲明語句包括單元說明語句、類型說明語句、變量說明語句、過程說明語句、函數(shù)說明語句和程序區(qū)段標(biāo)識語句等??蓤?zhí)行語句包括賦值語句、運行控制語句和結(jié)構(gòu)控制語句等。按語句的描述形式,可分為簡單語句、結(jié)構(gòu)語句和復(fù)合語句等。簡單語句只含有一個語句定義符或特殊標(biāo)志;結(jié)構(gòu)語句往往含有多于一個的語句動詞;復(fù)合語句則是由begin和end括起來的若干個簡單語句、結(jié)構(gòu)語句和復(fù)合語句,允許復(fù)合語句多層嵌套,或為空,也就是在begin和end之間沒有其他語句。
目前六十三頁\總數(shù)四百八十二頁\編于十二點2.6.2常見聲明語句1.標(biāo)號聲明語句標(biāo)號聲明語句即用一個整型數(shù)來表示程序的某個執(zhí)行語句,一行標(biāo)號聲明語句可以同時聲明幾個標(biāo)號,其用法如下所示:labelAa,Ab;varI:integer;begin…//語句
if(I=0)thengotoAa;…//語句Aa:begin…//語句
end;end;目前六十四頁\總數(shù)四百八十二頁\編于十二點2.類型聲明語句在ObjectPascal中,所有的變量必須是某種特定的數(shù)據(jù)類型,類型決定了它所能包含的數(shù)值和可進行的操作,用類型聲明語句可以定義新的數(shù)據(jù)類型。例如:TypeTmyDim:Array[1..10,1..5]ofDouble;3.過程聲明語句過程可以被看成一段小程序,用來實現(xiàn)某種特定的目標(biāo),在完整的程序中它被當(dāng)作一個語句來執(zhí)行。在建立過程之前應(yīng)先聲明。procedureNumString(N:Integr;VarS:string);目前六十五頁\總數(shù)四百八十二頁\編于十二點4.函數(shù)聲明語句函數(shù)與過程相似,主要區(qū)別在于函數(shù)必須有返回值,函數(shù)的聲明參見下面的語句,其中,最后的Real表示函數(shù)的返回數(shù)據(jù)類型。FunctionPower(X:Real;Y:Integer):Real;2.6.3賦值語句和程序的順序結(jié)構(gòu)1.賦值語句賦值語句的語法格式為:<變量名>:=<表達式>;2.類型兼容類型兼容是指數(shù)據(jù)類型不完全相同的量之間能進行的運算和賦值操作。目前六十六頁\總數(shù)四百八十二頁\編于十二點3.利用賦值語句給對象屬性賦值由于屬性總是歸屬于對象才有實際意義,所以引用屬性時用符號“.”來連接表示其隸屬關(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òu)成。目前六十七頁\總數(shù)四百八十二頁\編于十二點2.6.4條件語句和程序的選擇結(jié)構(gòu)實現(xiàn)選擇結(jié)構(gòu)的是IF語句和Case語句,這兩種語句又稱條件語句,條件語句的功能就是根據(jù)表達式的值有選擇地執(zhí)行一組語句。1.if語句通過條件的布爾表達式值選擇執(zhí)行路徑。
if<條件>then[<語句1>][else<語句2>];
if語句分為簡單條件語句和復(fù)合條件語句。簡單條件語句的<語句>中不包含其他的條件語句。如果在If語句格式中的<語句1>或<語句2>本身又是一個If語句,則稱為If語句的嵌套,嵌套的If語句又被稱為復(fù)合條件語句。目前六十八頁\總數(shù)四百八十二頁\編于十二點2.Case語句
Case語句用來實現(xiàn)多分支選擇結(jié)構(gòu)。Case語句描述了多路擇一的功能,它根據(jù)“選擇器表達式”的值決定執(zhí)行相應(yīng)的語句。Case語句的語法格式為:
case<選擇器表達式>of<情況常量表1>:<語句1>;…<情況常量表n>:<語句n>;[else<其他語句列>;]end;說明:<選擇器表達式>的值必須是順序類型。目前六十九頁\總數(shù)四百八十二頁\編于十二點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ù)四百八十二頁\編于十二點說明:可在(循環(huán)體)中任何位置Break語句來終止While循環(huán),Break語句通常位于IF語句后??稍谘h(huán)體中任何位置放置Continue語句,以便在整個循環(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ù)四百八十二頁\編于十二點3.For語句若知道要執(zhí)行多少次循環(huán)時,則使用For循環(huán)結(jié)構(gòu)。For循環(huán)使用一個循環(huán)變量,每重復(fù)一次循環(huán)之后,循環(huán)變量的值就會自動增加或者減少。For語句的語法格式為:for<循環(huán)變量>=<初值>{to|downto}<終值>do[<循環(huán)體>];說明:<循環(huán)變量>只能是順序類型,TO表示計數(shù)器遞增,DownTo表示計數(shù)器遞減。4.循環(huán)的嵌套循環(huán)語句的循環(huán)體中僅包含了簡單語句,稱為單重循環(huán)。目前七十二頁\總數(shù)四百八十二頁\編于十二點如果在循環(huán)體中又包含了另一個循環(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語句。可以放在循環(huán)體的任意位置,通常放在If語句之后。執(zhí)行Break語句的結(jié)果是:跳出整個循環(huán),執(zhí)行<循環(huán)體>之后的語句。目前七十三頁\總數(shù)四百八十二頁\編于十二點執(zhí)行Continue語句的結(jié)果是:跳出本輪循環(huán),然后判斷循環(huán)條件是否成立,再決定是否開始新一輪的循環(huán)。小結(jié)本章主要介紹了ObjectPascal的最基本的語法,主要包括基本詞法、基本數(shù)據(jù)類型、常量與變量、運算符與表達式、常用函數(shù)與過程、語句等。目前七十四頁\總數(shù)四百八十二頁\編于十二點第3章常用組件
Delphi7.0的組件板上含有27個選項卡,總共包括350多個組件,如圖所示:3.1窗體
3.1.1Form組件
窗體是應(yīng)用程序的操作界面,是放置組件的基礎(chǔ)。窗體由標(biāo)題欄、工作區(qū)和邊界組成。圖3-1組件板和選項卡運行界面圖目前七十五頁\總數(shù)四百八十二頁\編于十二點Form的主要屬性窗體組件(TForm)在運行時表現(xiàn)為一個窗體,窗體是一個容器構(gòu)件,它可以包含其他種類的構(gòu)件,并協(xié)同完成應(yīng)用程序的整體功能。窗體由屬性、事件和方法組成。(1)BorderIcons屬性用來制定窗體標(biāo)題欄上的圖標(biāo)(2)BorderStyle屬性Borderstyle屬性用來設(shè)置窗體的外觀和邊框(3)Name屬性Name屬性唯一地標(biāo)識對象,取值不能為空,若工程中有多個窗體,名稱不能相同。
目前七十六頁\總數(shù)四百八十二頁\編于十二點(4)Caption屬性用來指定窗體標(biāo)題欄中說明文字,可以為空。(5)Font屬性
Font屬性用來設(shè)置窗體中文字的字體、顏色和字號等等,其中Font.style屬性為集合型。(6)FormStyle屬性
FormStyle屬性用來指定窗體的類型。從窗體類型的角度來看,Windows環(huán)境中的應(yīng)用程序可以分為以下三類。第一類:多文檔界面(MDI)應(yīng)用程序一般這種應(yīng)用程序具有一個父級窗口和多個子窗口,可以同時打開多個文檔,分別在多個子窗口中顯示。目前七十七頁\總數(shù)四百八十二頁\編于十二點
第二類:單文檔界面(SDI)應(yīng)用程序這種應(yīng)用程序同時只能打開一個文檔。第三類:對話框應(yīng)用程序這種應(yīng)用程序的主界面基于一個對話框類型的窗體。
(7)Icon屬性
Icon屬性用來指定標(biāo)題欄中顯示的圖標(biāo)。(8)Position屬性
Position屬性用來描述窗體大小和顯示位置。
(9)WindowsState屬性
WindowsState屬性來描述窗體顯示狀態(tài)。2.TForm的事件窗體是一個可視化的組件,包括外部事件和內(nèi)部事件。目前七十八頁\總數(shù)四百八十二頁\編于十二點3.窗體的方法一些常用方法(過程或函數(shù))有:Create、Close、CloseQuery、release、Show、ShowModal、Print。4.窗體的創(chuàng)建創(chuàng)建窗體的方法分為兩種:靜態(tài)創(chuàng)建和動態(tài)創(chuàng)建。所謂靜態(tài)創(chuàng)建窗體是指再工程的編輯、設(shè)計時創(chuàng)建新窗體;而動態(tài)創(chuàng)建窗體是指在工程的運行時通過代碼生成窗體。
(1)靜態(tài)創(chuàng)建新窗體通過集成開發(fā)環(huán)境中的【File】|【New】|【Application】菜單,創(chuàng)建一個應(yīng)用程序,目前七十九頁\總數(shù)四百八十二頁\編于十二點
此時自動生成一個窗體Form1,再打開【File】|【New】|【Form】菜單生成一個窗體Form2。在Form1中添加兩個Button、1個Label組件,F(xiàn)orm2中添加1個Label組件,即可完成界面設(shè)計。添加代碼:procedureTForm1.Button1Click(Sender:TObject);//創(chuàng)建按鈕事件begin//關(guān)鍵分析
form2.show;//調(diào)用Show方法顯示Form2窗體end;procedureTForm1.Button2Click(Sender:TObject);beginform1.Close;end;目前八十頁\總數(shù)四百八十二頁\編于十二點程序分析:編譯上述工程時,系統(tǒng)會彈出出錯提示信息,單擊“Yes”按鈕,Delphi將自動在Unit1單元中添加對Unit2單元的引用。
(2)動態(tài)態(tài)創(chuàng)建新窗體在需要某個窗體時,臨時創(chuàng)建它,使用后將其立即釋放,這種稱為窗體的動態(tài)創(chuàng)建。
3.1.2彈出對話框窗體
Delphi提供內(nèi)部對話框有兩種。第一種:信息輸出對話框Showmessage過程、ShowMessageFmt過程、MessageDlg函數(shù)、MessageDlgPos函數(shù)、CreateMessageDialog函數(shù)。目前八十一頁\總數(shù)四百八十二頁\編于十二點第二種:信息輸入對話框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ù)四百八十二頁\編于十二點其語法格式為:<變量>=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ù)四百八十二頁\編于十二點7.InputQuery函數(shù)其語法格式為:<變量>=InputQuery(<對話框標(biāo)題>,<信息內(nèi)容>,<字符串變量>);3.2輸入顯示類組件3.2.1Edit組件編輯框(Edit)是一種通用組件,既可以輸入文本,又可以顯示文本,編輯框組件位于Standard組件板中。
圖3-7編輯框Edit運行界面圖目前八十四頁\總數(shù)四百八十二頁\編于十二點1.Edit的主要屬性(1)AutoSelect屬性:設(shè)置編輯框得到焦點時,文本是否自動被選中。(2)AutoSize屬性:決定編輯框是否自動隨字體的變化而改變大小。(3)Enable屬性:用來設(shè)置編輯框是否能用。(4)BorderSytle屬性:設(shè)置編輯框邊框類型。(5)MaxLength屬性:設(shè)所能接受最大字符數(shù)。(6)PasswordChar屬性:設(shè)置非#0字符時,將代替用戶輸入的字符被顯示。(7)ReadOnly屬性:定編輯框中的文本是否可以編輯。目前八十五頁\總數(shù)四百八十二頁\編于十二點(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
運行界面圖目前八十六頁\總數(shù)四百八十二頁\編于十二點1.Label的主要屬性
(1)Caption屬性:用來顯示標(biāo)簽的文本。(2)ShowAccelChar屬性:決定是否將&作為作為熱鍵字符的標(biāo)記。(3)AutoSize屬性:決定標(biāo)簽是否自動隨文本的變化而改變大小。(4)Alignment屬性:決定對齊方式。(5)Layout屬性:控制文本顯示在標(biāo)簽的位置。(6)WordWrap屬性:控制是否折行顯示。(7)Transparent屬性:決定背景是否透明。(8)FocusControl屬性:用來獲得焦點組件名。目前八十七頁\總數(shù)四百八十二頁\編于十二點3.2.3Memo組件備注框組件位于Standard組件板中。1.Memo的主要屬性備注框在Delphi中用Tmemo類處理,Tmemo類是Tedit類的衍生類,為了處理多行文本,Tmemo類還增加了一些新的屬性。(1)CaretPos屬性:得到光標(biāo)在編輯區(qū)中位置。
(2)Lines屬性:用來存放Memo對象的文本。(3)Modified屬性:確定文本是否被改動過。圖3-10備注框Memo運行界面圖目前八十八頁\總數(shù)四百八十二頁\編于十二點(4)ScrollBars屬性:決定備注框是否具有滾動條。(5)WordWrap屬性:設(shè)置文本是否能夠換行。(6)WantReturns屬性:用來設(shè)置備注框是否能插入“回車”鍵。(7)WantTabs屬性:用來設(shè)置備注框是否能插入“Tab”鍵。2.Memo的使用【例3.4】利用編輯框,把編輯框中的文本輸入到Memo中。(1)界面設(shè)計目前八十九頁\總數(shù)四百八十二頁\編于十二點
創(chuàng)建一個新的工程,在窗體中添加1個按鈕Button1組件、一個編輯框Edit1組件和一個備注框Memo1組件,各組件的屬性設(shè)置如圖:(2)程序設(shè)計procedureTForm1.Button1Click(Sender:TObject);beginMemo1.Lines.Add(Edit1.Text);edit1.Text:='';edit1.SetFocus;end;圖3-12Memo示例運行界面圖目前九十頁\總數(shù)四百八十二頁\編于十二點procedureTForm1.FormActivate(Sender:TObject);beginedit1.SetFocus;end;3.2.4MaskEdit組件
它限制用戶在所定義的位置輸入要求輸入的符號。掩碼編輯框(MaskEdit)組件位于Additional附加組件板”中。1.MaskEdit常用屬性圖3-13Memo示例運行界面圖目前九十一頁\總數(shù)四百八十二頁\編于十二點(1)EditMask屬性
EditMask屬性用來控制用戶輸入數(shù)據(jù)格式的掩碼字符串,掩碼字符串EditMask屬性分為三個部分,用分號分隔。第一部分是掩碼字符串的主要部分,它確定了數(shù)據(jù)的格式;第二部分決定是否將掩碼中的字符串作為數(shù)據(jù)的一部分,0表示不作為數(shù)據(jù)的一部分,1表示作為數(shù)據(jù)的一部分,它將影響屬性;第三部分指出在掩碼中用來代表未輸入數(shù)據(jù)的字符。(2)EditText屬性:用來返回用戶輸入的數(shù)據(jù)。目前九十二頁\總數(shù)四百八十二頁\編于十二點3.3按鈕類組件3.3.1Button組件
Button按鈕在Delphi7.0組件板Standard選項卡中
1.Button的主要屬性(1)Caption屬性:來制定按鈕所顯示的文字。(2)Cancel屬性:決定改按鈕是否為取消按鈕,缺省值為False。(3)Default屬性:用來決定改按鈕是否為默認(rèn)按鈕,缺省值為False。圖3-16Button基本按鈕運行界面圖目前九十三頁\總數(shù)四百八十二頁\編于十二點(4)ModalResult屬性:用來決定模式窗體如何被關(guān)閉。2.Button的事件
Button組件常用的事件如表所示。在下述兩種情況下,OnClick事件將被激發(fā):
(1)用鼠標(biāo)單擊按鈕。(2)按鈕獲得焦點時按下<Enter>鍵或空格鍵。事件
含義
OnClick鼠標(biāo)單擊事件OnMouseDown
鼠標(biāo)按下事件OnMouseMove
鼠標(biāo)移過事件OnMouseUp
鼠標(biāo)釋放事件目前九十四頁\總數(shù)四百八十二頁\編于十二點3.3.2BitBtn組件位于Delphi7.0組件板Additional選項卡中。
1.BitBtn的主要屬性(1)Glyph屬性:為bitBtn制定一個.bmp文件,顯示再按鈕的表面。(2)Kind屬性:決定bitBtn按鈕的種類。(3)Layout屬性:用來控制bitBtn按鈕中位圖與文本的相對位置。默認(rèn)值為blGlyphLeft。(4)Margin屬性:用來控制bitBtn按鈕中位圖與邊界之間的象素個數(shù)。圖3-17BitBtn按鈕運行界面圖目前九十五頁\總數(shù)四百八十二頁\編于十二點(5)Spacing屬性:用來控制bitBtn按鈕中位圖與文本之間的(距離)象素個數(shù),默認(rèn)值為4。2.BitBtn的事件
BitBtn組件常用的事件如表所示。在下述兩種情況下,OnClick事件將被激發(fā):(1)用鼠標(biāo)單擊按鈕。(2)按鈕獲得焦點時按下<Enter>鍵或空格鍵。事件含義OnClick
鼠標(biāo)單擊事件OnMouseDown
鼠標(biāo)按下事件OnMouseMove鼠標(biāo)移過事件OnMouseUp鼠標(biāo)釋放事件目前九十六頁\總數(shù)四百八十二頁\編于十二點3.3.3SpeedButton組件快速按鈕(SpeedButton)是一種可以成組工作的按鈕,具有將位圖顯示在按鈕表面的功能;還具有允許其中一個按鈕被選中(按下)的功能;當(dāng)它單獨使用時具有開關(guān)的功能??焖侔粹o位于Additonal組件板中。
SpeedButton的主要屬性有:(1)AllowAllUp屬性:控制是否允許單擊處于按下狀態(tài)的按鈕,使之恢復(fù)到松開狀態(tài)。默認(rèn)值為False。圖3-19快速按鈕SpeedButton運行界面圖目前九十七頁\總數(shù)四百八十二頁\編于十二點(2)Down屬性:設(shè)置按鈕是否處于按下狀態(tài)。(3)Flat屬性:當(dāng)取值為True時,按鈕具有Office97工具欄的風(fēng)格。默認(rèn)值為False。(4)GroupIdex屬性:該屬性默認(rèn)值為0,表示不與其他SpeedButton成組。3.4復(fù)選框、單選按鈕和單選按鈕組3.4.1CheckBox組件位于Delphi7.0組件板Standard選項卡中。
圖3-21復(fù)選框CheckBox目前九十八頁\總數(shù)四百八十二頁\編于十二點復(fù)選框CheckBox具有選中和未被選中兩種狀態(tài),未選中狀態(tài),選中狀態(tài)。還有一種不確定狀態(tài),表示既非選中又非未選中。1.CheckBox的主要屬性(1)Checked屬性:用于表明CheckBox是否被選中。(2)State屬性:屬性State進一步確定CheckBox狀態(tài)。有3種值:cbChecked、cbUnchecked和cbGrayed,分別為選中、未選中和不確定。(3)AllowGrayed屬性:為True時,復(fù)選框有3種選擇:為False時,只有選中和未選中狀態(tài)。目前九十九頁\總數(shù)四百八十二頁\編于十二點3.4.2RadioButton組件位于Delphi7.0組件板Standard選項卡中。RadioButton的主要屬性有:
Checked屬性:表明CheckBox是否被選中。RadioButton有兩種狀態(tài),如果當(dāng)Checked屬性為True時,表示選中狀態(tài),如果當(dāng)Checked屬性為False時,表示未選中狀態(tài)。3.4.3RadioGroup組件位于Delphi7.0組件板Standard選項卡中。圖3-23單選按鈕RadioButton目前一百頁\總數(shù)四百八十二頁\編于十二點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ù)四百八十二頁\編于十二點3.5列表框、組合框3.5.1ListBox組件當(dāng)列表框不能同時顯示所有選擇項時,將自動加上一個垂直滾動條,使用戶可以上下滾動列表框,以查閱所有的選項。列表框位于組件板Standard選項卡中。ListBox的主要屬性:(1)Items屬性:列表框中選項的集合。(2)ItemsIndex屬性:為選項的索引值。圖3-28列表框ListBox運行界面圖目前一百零二頁\總數(shù)四百八十二頁\編于十二點(3)Stored屬性:決定選項是否排序。(4)Columns屬性:決定列表框的列數(shù)。(5)MultiSelect屬性:定是否可以選擇多項。(6)SelCount屬性:被選中的項的數(shù)目,只讀。(7)Selected屬性:設(shè)置或返回是否被選中。(8)IntegralHelght屬性:True自動調(diào)整框的高度使每行的高度(IntemHeight)可以完整地被顯示。False不自動調(diào)整框的高度,非完整高度行被顯示在框的底部。(9)ItemHeight屬性:控制列表框中行的高度。目前一百零三頁\總數(shù)四百八十二頁\編于十二點(10)Style屬性lbStandard固定Font.Size屬性與ItemHeight屬性之比。lbOwnerDrawFixed可以調(diào)整ItemHeight,并將自動調(diào)整框的高度以適應(yīng)行高。LbOwnerDrawVariable可以調(diào)整ItemHeight屬性,需手動調(diào)整框的高度以適應(yīng)行高。3.5.2ComboBox組件兼有EditBox和ListBox兩者功能,用戶可以通過鍵入文本或選擇列表中項目來進行選擇。組合框位于組件板Standard選項卡中。目前一百零四頁\總數(shù)四百八十二頁\編于十二點1.組合框的主要屬性(1)Items屬性:列表框中選項的集合。(2)ItemsIndex屬性:為選項的索引值。(3)Stored屬性:決定選項是否排序。(4)DorpDownCount屬性:控制組合框下拉列表所能顯示選項的最大個數(shù)。(5)SelText屬性:存儲顯示于編輯區(qū)中被選中項的內(nèi)容。(6)Style屬性:決定組合框的風(fēng)格。圖3-29組合框ComboBox目前一百零五頁\總數(shù)四百八十二頁\編于十二點3.6滾動條要想自己操縱窗口的滾動,就要用到TScrollBar組件。當(dāng)在滾動條上操作時,將觸發(fā)OnScroll事件,TScrollBar組件直接繼承于TwinControl中,位于Standard選項卡中。1.ScrollBar主要屬性、方法與事件(1)LargeChange屬性:當(dāng)用戶單擊滾動條時,滾動距離由LargeChange屬性設(shè)置,默認(rèn)1。
(2)Max、Min屬性:設(shè)置滾動條可滾動的范圍圖3-31滾動條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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新品嘗試中介合同
- 家庭水電設(shè)施維保合同
- 冷鏈物流管理與租賃合同
- 阿拉善市重點中學(xué)2025屆高三下學(xué)期第一次月考(4月)數(shù)學(xué)試題試卷含解析
- 陜西省西安地區(qū)2025屆高三十二月月考英語試題含解析
- 心肺復(fù)蘇趣味課件
- 億萬富翁合同標(biāo)準(zhǔn)文本
- 臨時征地協(xié)議合同標(biāo)準(zhǔn)文本
- 關(guān)于買賣合同標(biāo)準(zhǔn)文本
- 買loft合同標(biāo)準(zhǔn)文本
- 建設(shè)工程施工合同(示范文本)GF-2020-0201模板
- 2013-04 FLUENT工程技術(shù)與實例分析(套裝上下冊) 周俊杰、徐國權(quán)、 張華俊 中國水利水電出版社
- 慢性阻塞性肺病.ppt
- 采礦試題題庫
- 人教版高一數(shù)學(xué)必修一全套教案
- 大連市歷年居民收入及職工工資統(tǒng)計數(shù)據(jù)
- 厭氧氨氧化ppt
- 基于PLC的污水處理控制系統(tǒng)設(shè)計畢業(yè)設(shè)計(論文)
- 總監(jiān)巡視工作記錄
- 壓力容器制造檢驗驗收制度14
- 《工程款結(jié)算單》
評論
0/150
提交評論