Delphi7應(yīng)用教程課件_第1頁
Delphi7應(yīng)用教程課件_第2頁
Delphi7應(yīng)用教程課件_第3頁
Delphi7應(yīng)用教程課件_第4頁
Delphi7應(yīng)用教程課件_第5頁
已閱讀5頁,還剩434頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章基本數(shù)據(jù)類型與表達式本章要點:

掌握Delphi的基本數(shù)據(jù)類型(整型、實型、字符型、字符串型和布爾型)

理解并掌握常量與變量的概念與定義方法

掌握三類基本運算符:算術(shù)運算符、位運算符和字符串運算符的含義與優(yōu)先順序

掌握三類基本表達式,并能靈活運用 2.1循序漸進學理論2.1.1基本數(shù)據(jù)類型

1.整型

描述存儲各種整數(shù)數(shù)據(jù)的類型即整型。

2.實型

描述存儲各種實數(shù)數(shù)據(jù)的類型為實型。

3.字符型描述存儲單個字符數(shù)據(jù)的類型。

4.字符串型

5.布爾型布爾型是描述存儲True(真)和False(假)數(shù)據(jù)的類型。2.1.2Delphi7.0中的標識符與保留字1.標識符

標識符是一種符號,用來表示常量、變量、類型、過程、函數(shù)和對象等語法實體。標識符又分標準標識符和自定義標識符。系統(tǒng)規(guī)定的標識符叫標準標識符,用戶或程序員定義的標識符叫自定義標識符。(1)標準標識符包括下面5種標識符:

標準常量:例如Boolean類型數(shù)據(jù)的取值True和False。

標準類型:例如表2-1至表2-6中的各種類型說明名。

標準過程:例如Put、Reset等。

標準函數(shù):例如sin(正弦函數(shù))、Cos(余弦)等。

標準文件:例如Input、TextFile等。(2)自定義標識符必須遵循如下的命名規(guī)則:

由字母、數(shù)字和下劃線“_”組成。

以字母或下劃線開頭。

不能與保留字同名。

最好不與標準標識符同名。2.保留字3.指令符2.1.3Delphi7.0中的常量與變量1.常量

(1)直接常量直接常量就是在程序中直接使用的各種常量,如整型常量516、-111等;實型常量1.2、0.0、3.6E5等;字符常量'a'、'10'等;字符串常量:'www'、'中國'等;布爾常量True和False。(2)符號常量符號常量就是用一個符號(自定義標識符)來表示常量。符號常量在使用前必須先定義,定義符號常量的定義格式如下。[格式]:Const

常量名1=常量值1;

常量名2=常量值2;…

常量名n=常量值n;

符號常量也可以具有數(shù)據(jù)類型,稱類型常量。符號常量中的類型可以是標準類型,也可以是高級類型。類型常量的定義格式如下。[格式]:Const

常量名1:類型名1=常量值1;…

常量名n:類型名n=常量值n;2.變量(1)變量的聲明

聲明變量的語法格式如下:[格式]:Var

變量名1:類型名1;

變量名2:類型名2;…

變量名n:類型名n;(2)變量的使用2.1.4Delphi7.0中的運算符與表達式1.算術(shù)運算符

(1)取正運算符“+”(2)取負運算符“-”

(3)加法運算符“+”(4)減法運算符“-”

(5)乘法運算符“*”(6)除法運算符“/”

(7)整除運算符“div”(8)取余運算符“mod”注意:

取正運算符和取負運算符是單目運算符,其它6個運算符為雙目運算符。

加法運算符、減法運算符和乘法運算符的結(jié)果的類型為參加運算的兩個數(shù)據(jù)中的精度高的類型。

/、div和mod運算符中的除數(shù)不能為0。2.字符串運算符

Delphi只有一個字符串運算符“+”——連接運算符,用于把兩個或多個字符串連接在一起形成一個新的字符串。例如'abc'+'def'的值為'abcdef'。3.位運算符4.運算符的優(yōu)先級

表達式中通常有多個運算符,在計算表達式的值時,必須弄清這些運算符的運算次序,即運算符的優(yōu)先級。5.表達式

(1)算術(shù)表達式

算術(shù)表達式就是將算術(shù)運算符、圓括號和滿足該運算符要求的有關(guān)數(shù)據(jù)(數(shù)值型常量、變量和函數(shù)等)連接起來的式子。(2)字符串表達式利用字符串運算符將字符串常量、字符串變量或字符串函數(shù)連接起來的式子稱字符串表達式。字符串表達式的格式如下:

s1+s2

其中s1和s2可以是字符串常量、變量或函數(shù)。2.1.5Delphi7.0的語句書寫規(guī)則與賦值語句1.語句書寫規(guī)則

Delphi的語句分簡單語句和復合語句,兩者之間并沒有太大差別。只是復合語句由兩條以上的簡單語句組成,同時必須書寫在“begin”和“end”語句之間。兩種語句中的每條語句的末尾都是分號(只有程序的最后一條語句是句號)。為區(qū)分不同的語句,每條語句以分號隔開,可以在一行寫幾條語句,也可以把一條語句寫在幾行上。2.賦值語句

賦值語句的語法格式及功能如下。

[格式1]:變量名:=表達式;[功能]:將表達式的值賦值給變量。

[格式2]:對象.屬性名:=表達式;

[功能]:將表達式的值賦值給對象的屬性。

[說明]:表達式的結(jié)果與變量或?qū)ο蟮膶傩酝瑢儆谝环N類型。2.1.6Delphi7.0的常用函數(shù)與過程1.數(shù)學類函數(shù)

(1)絕對值函數(shù)

[調(diào)用格式]:Abs(x);

(2)取整數(shù)函數(shù)

[調(diào)用格式1]:Trunc(x):Int64;[調(diào)用格式2]:Round(x):Int64;[調(diào)用格式3]:Int(x):Extended;

(3)取小數(shù)函數(shù)

[調(diào)用格式]:Frac(x):Extended;(4)平方函數(shù)

[調(diào)用格式]:Sqr(x):Extended;(5)平方根函數(shù)

[調(diào)用格式]:Sqrt(x):Extended;(6)三角函數(shù)

[調(diào)用格式1]:Sin(x):Extended;[調(diào)用格式2]:Cos(x):Extended;[調(diào)用格式3]:ArcTan(x):Extended;(7)指數(shù)函數(shù)

[調(diào)用格式]:Exp(x):Real;

(8)自然對數(shù)函數(shù)

[調(diào)用格式]:Ln(x):Real;

(9)隨機數(shù)函數(shù)

[調(diào)用格式]:Random(x);2.字符串處理函數(shù)與過程

(1)大小寫轉(zhuǎn)換函數(shù)

[調(diào)用格式1]:LowerCase(consts:String):String;

(2)比較字符串大小函數(shù)

[調(diào)用格式1]:CompareStr(consts1,s2:String):Integer;[調(diào)用格式2]:CompareText(consts1,s2:String):Integer;(3)求字符串長度函數(shù)

[調(diào)用格式]:Length(s):Integer;

(4)查找位置函數(shù)

[調(diào)用格式]:Pos(s1,s2:String):Integer;(5)合并字符串過程

[調(diào)用格式]AppendStr(vars1:String;Consts2:String);(6)截取子字符串函數(shù)

[調(diào)用格式]:Copy(s:String;m,n:Integer):String;(7)刪除子字符串過程

[調(diào)用格式]:Delete(vars:String;m,n:Integer);(8)插入子字符串過程

[調(diào)用格式]:Insert(S1:String;vars:String;k:Integer);(9)數(shù)值和字符串相互轉(zhuǎn)換函數(shù)

[調(diào)用格式1]:IntToStr(m:Integer):String;[調(diào)用格式2]:StrToInt(s:String):Integer;[調(diào)用格式3]:FloatToStr(f:Extended):String;[調(diào)用格式4]:StrToFloat(s:String):Extended;2.2典型實例練能力2.2.1典型實例一:求整數(shù)各位數(shù)字

【實例題目】

利用本章學習的算術(shù)運算符和算術(shù)表達式,編寫一個程序,實現(xiàn)下面的功能:輸入一個任意4位整數(shù),計算千位、百位、十位和個位上的數(shù)字。程序設(shè)計界面如圖2-1所示,程序運行界面如圖2-2所示。程序運行時,輸入任意整數(shù),單擊按鈕【個位數(shù)字】,將顯示個位數(shù)字,單擊按鈕【十位數(shù)字】,將顯示十位數(shù)字,其它依此類推。2.3上機練習重應(yīng)用2.3.1上機練習一:簡單的函數(shù)計算器

【練習題目】

常用的計算器能求很多種函數(shù)的值,用戶也可以編寫一個程序計算某些函數(shù)的值。程序的設(shè)計界面如圖2-3所示,程序運行時輸入自變量,單擊【】、【】、【】和【】按鈕,將分別計算出x的相應(yīng)函數(shù)值,并顯示在函數(shù)值后面的編輯框中。程序運行界面如圖2-4所示。第3章基本程序設(shè)計語句

本章要點:

理解順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)程序設(shè)計的思想

理解雙分支語句和多分支語句的含義

掌握利用雙分支語句和多分支語句設(shè)計分支程序的方法

理解循環(huán)的概念

掌握循環(huán)程序設(shè)計的方法以及常用的算法,如累加求和、窮舉法等 3.1循序漸進學理論3.1.1基本的順序結(jié)構(gòu)語句及其應(yīng)用

順序結(jié)構(gòu)是程序設(shè)計中最常用也是最簡單的程序結(jié)構(gòu)。所謂順序結(jié)構(gòu)就是其中的語句是按照先后順序依次執(zhí)行,程序執(zhí)行的流程不會發(fā)生跳轉(zhuǎn)。

【例3-1】設(shè)計一個程序,程序設(shè)計界面如圖3-1所示。在程序設(shè)計時,編輯框顯示“遠方的朋友,歡迎您”文字,字號為12號,字體為宋體,字體顏色為紅色。程序運行時,單擊【改變】按鈕,編輯框文本內(nèi)容不變,但字號改為20號,字體變?yōu)殡`書,顏色變?yōu)樗{色,如圖3-2所示。3.1.2選擇結(jié)構(gòu)語句及其基本應(yīng)用1.關(guān)系表達式與邏輯表達式

(1)關(guān)系運算符和關(guān)系表達式

關(guān)系運算符就是用來對兩個表達式進行大小比較的運算符。用關(guān)系運算符把兩個運算對象連接起來表示它們大小關(guān)系的式子稱為關(guān)系表達式。

關(guān)系表達式的一般格式及其功能如下。[格式]:表達式1關(guān)系運算符

表達式2[功能]:比較兩個表達式值的大小。

注意:關(guān)系運算遵循以下規(guī)律。

關(guān)系表達式兩邊的數(shù)據(jù)類型必須一致。

9個關(guān)系運算符的運算級別相同,而且都是所有運算符中級別最低的。在同級別運算符中,按從左到右的順序運算,括號里的表達式最先運算。

當對字符進行大小比較時,Delphi對字母的大小寫是有區(qū)別的,并按照每個字符的ASCII碼值大小予以比較。

(2)邏輯運算符和邏輯表達式

邏輯表達式就是用邏輯運算符把若干個關(guān)系表達式或邏輯值(True或False)連接起來的式子。

邏輯表達式的運算步驟是:對雙目運算符,先運算兩個表達式的值,再進行邏輯比較;對單目運算符(Not),先計算表達式的值,再進行取反操作。

注意:邏輯運算遵循以下規(guī)律。

邏輯運算符與第二章講解的位運算符符號相同,但含義不同。當邏輯運算符兩邊的數(shù)據(jù)為數(shù)值時,此時的邏輯運算符轉(zhuǎn)化為位運算符,結(jié)果為整數(shù)而不是邏輯值。

邏輯運算符的優(yōu)先級別是:Not為第一級,And為第二級,Or和Xor為第三級。先運算級別高的,后運算級別低的,同級別運算符,按從左到右的順序運算。而括號里的表達式最先運算,不管其級別高低。

2.單分支與雙分支IF語句

IF語句常用來實現(xiàn)單分支或雙分支,它的語法格式有兩種,分別如下。

[格式1]:IF(條件)

Then

語句1;[格式2]:IF(條件)

Then

語句1Else//Else之前(語句1之后)沒有分號語句2;

注意:(1)對語法格式2(雙分支IF語句),語句1后面沒有分號,因為IF…Then…Else語句是一個完整的語句。(2)兩種語法格式中的語句1和語句2都可以是簡單語句或復合語句(復合語句必須包含在begin和end之間)。

【例3-2】

編寫一個做算術(shù)題的程序,程序的設(shè)計界面如圖3-3所示。程序執(zhí)行時,單擊【出題】按鈕,將隨機產(chǎn)生100以內(nèi)的非負加數(shù)和被加數(shù),當在等號“=”右邊的方框里寫出正確答案后,單擊【結(jié)果】按鈕,將顯示“答案正確”;如果輸入的答案不正確,將顯示“答案錯誤”,如圖3-4所示。3.多分支Case語句

[格式]:Case(表達式)

of

值1:語句1;

值2:語句2;

值n:語句n;Else//這里的Else之前可以有分號

語句n+1;end;注意:(1)“表達式”的值必須是順序類型,即整型、字符型、布爾型、子界型和枚舉型。(2)“值1”到“值n”應(yīng)該是“表達式”可能出現(xiàn)的值,它們還應(yīng)該各不相同。(3)語句可以是簡單語句,也可以是復合語句。(4)Else語句可以省略,省略時如果“表達式”的值與“值1”~“值n”中的任何一個值均不相等,則不執(zhí)行任何分支,直接跳轉(zhuǎn)到end;后面的語句執(zhí)行。(5)Case語句可以用IF語句來實現(xiàn),但IF語句不一定能用Case語句實現(xiàn)?!纠?-3】

某個團體按如下規(guī)定交會費:收入在0~499元之間的交0.5%,收入在500~999元之間的交1%,收入在1000~1999元之間的交1.5%,收入在2000元及以上的交2%。請編寫程序?qū)崿F(xiàn):根據(jù)輸入的收入金額,計算出應(yīng)該上交的會費。程序設(shè)計界面如圖3-5所示,程序運行界面如圖3-6所示。

3.1.3循環(huán)結(jié)構(gòu)語句及其基本應(yīng)用

1.While語句

[格式]:While(循環(huán)條件)

do//循環(huán)條件為關(guān)系或邏輯表達式,其值為True或False

循環(huán)體;//“循環(huán)體”可以是簡單語句或復合語句注意:(1)可以在循環(huán)體的任何位置放置Break語句,用來強制終止整個循環(huán)。(2)也可以在循環(huán)體的任何位置放置Continue語句,在該次循環(huán)執(zhí)行完之前就結(jié)束本次循環(huán),重新判斷循環(huán)條件,根據(jù)循環(huán)條件的值,決定是否繼續(xù)執(zhí)行循環(huán)。顯然,Continue語句和Break語句含義是不同的。(3)Break語句和Continue語句通常放置在循環(huán)體中的IF語句之后,即在滿足某個條件的時候,結(jié)束循環(huán)或結(jié)束本次循環(huán)。(4)注意循環(huán)條件,它決定了是否執(zhí)行循環(huán)以及執(zhí)行多少次循環(huán)。【例3-4】

利用While語句求2+3+…+50的和。程序設(shè)計界面如圖3-7所示,程序運行界面如圖3-8所示。

2.Repeat語句

[格式]:Repeat

循環(huán)體;Until(循環(huán)條件);注意:(1)循環(huán)體可以是簡單語句,也可以是復合語句,對于復合語句,不需要用begin…end括起來。(2)也可以使用Break和Continue語句來終止循環(huán)或結(jié)束本次循環(huán)。(3)是在“循環(huán)條件”為False時執(zhí)行循環(huán),為True時退出循環(huán)。

【例3-5】

用Repeat語句實現(xiàn)【例3-4】的功能,程序設(shè)計界面和程序運行界面分別如圖3-7和3-8所示。

3.For語句

[格式]:For循環(huán)變量:=初值

To(DownTo)

終值

Do

循環(huán)體;注意:(1)“循環(huán)變量”只能是順序類型(一共5種類型,請查閱前面章節(jié))。(2)格式中的“初值”和“終值”就是循環(huán)變量的“初值”和“終值”。(3)對遞增循環(huán),每循環(huán)一次,循環(huán)變量的值自動增加1;對遞減循環(huán),每循環(huán)一次,循環(huán)變量自動減少1。(4)循環(huán)體可以是簡單語句也可以是復合語句,若為復合語句,需要用begin…end括起來。(5)在循環(huán)體中可以使用Continue和Break語句,它們也通常位于IF語句之后。

【例3-6】

用For語句實現(xiàn)【例3-4】的功能,程序設(shè)計界面和程序運行界面仍然如圖3-7和3-8所示。

3.2典型實例練能力

3.2.1典型實例一:郵箱登錄程序

【實例題目】

在很多場合需要輸入密碼,例如使用銀行卡、登錄電子郵箱、QQ聊天等。下面利用IF語句編寫一個類似登錄服務(wù)的簡單程序,程序的設(shè)計界面如圖3-9所示。程序?qū)崿F(xiàn)的功能如下:在編輯框中輸入密碼,單擊【確定】按鈕,如果輸入的密碼正確(假定正確密碼是“123abc”),就在另一個編輯框顯示“歡迎使用本系統(tǒng)”文本信息,文本的字號為18號,字體為隸書,字體顏色為藍色,如圖3-10所示。如果輸入的密碼不正確,就顯示“警告,密碼錯!”文本,文本字號還是18號,字體為楷體,字體顏色為紅色,如圖3-11所示。

3.2.2典型實例二:購物打折程序

【實例題目】節(jié)日來臨,商家為促銷搞優(yōu)惠活動,具體優(yōu)惠辦法如下:(1)一次性購物金額少于100元的,不優(yōu)惠;(2)一次性購物金額大于等于100元但少于300元的,優(yōu)惠5%;(3)一次性購物金額大于等于300元但少于500元的,優(yōu)惠10%;(4)一次性購物金額大于等于500元但少于1000元的,優(yōu)惠15%;(5)一次性購物金額大于等于1000元的,優(yōu)惠20%。請編寫程序?qū)崿F(xiàn)上面的功能,當輸入購物金額時,單擊【付款】按鈕,計算實際支付的金額。程序設(shè)計界面如圖3-12所示,程序運行界面如圖3-13所示。

圖3-12程序設(shè)計界面

圖3-13程序運行界面

3.2.3典型實例三:計算數(shù)學中常量的值

【實例題目】

編一個程序按下列公式求e的值(要求精度達到1e-5)。

程序的設(shè)計界面如圖3-14所示,程序運行時,單擊【計算】按鈕,將計算并顯示符合給定精度的值,如圖3-15所示。圖3-14程序設(shè)計界面

圖3-15程序運行界面

3.2.4典型實例四:素數(shù)判斷程序

【實例題目】

編寫一個判斷某數(shù)是否為素數(shù)的應(yīng)用程序,程序的設(shè)計界面如圖3-16所示。程序運行時,在編輯框中輸入任意一個正整數(shù),單擊【判斷】按鈕,在另一個編輯框顯示該數(shù)是否為素數(shù),如圖3-17所示。要求:通過For語句來實現(xiàn)。

圖3-16程序設(shè)計界面

圖3-17程序運行界面

3.2.5典型實例五:枚舉法求百錢買百雞問題

【實例題目】

我國古代有個著名的百錢買百雞問題:用100元錢買100只雞,公雞每只5元,母雞每只3元,小雞每3只1元,問該如何買?買法有許多種,請找出其中的一種。程序設(shè)計界面如圖3-18所示,程序運行界面如圖3-19所示。

圖3-18程序設(shè)計界面

圖3-19程序運行界面

3.3上機練習重應(yīng)用

3.3.1上機練習一:求階乘

【練習題目】

關(guān)于階乘的問題數(shù)學上也經(jīng)常遇到,請編寫程序求的值。程序設(shè)計界面如圖3-20所示,程序運行界面如圖3-21所示。圖3-20程序設(shè)計界面

圖3-21程序運行界面

3.3.2上機練習二:求兩數(shù)之間不能被4整除的數(shù)

【練習題目】

在兩個編輯框中任意輸入兩個正整數(shù),求它們之間所有不能被4整除的數(shù),并顯示出來。程序設(shè)計界面如圖3-22所示,程序運行界面如圖3-23所示。請編程實現(xiàn)上面的功能。

圖3-22程序設(shè)計界面

圖3-23程序運行界面

第4章數(shù)組程序設(shè)計

本章要點:

理解數(shù)組的概念

掌握一維數(shù)組和二維數(shù)組的含義與定義方法

掌握引用數(shù)組元素的方法

掌握與數(shù)組有關(guān)的常用算法4.1循序漸進學理論

4.1.1數(shù)組的概念數(shù)組是一些具有相同類型的元素按一定順序組成的序列。其中每個元素由其對應(yīng)的位置來指定,這個位置就是數(shù)組的索引號(又稱下標),數(shù)組元素與索引號是一一對應(yīng)的,用戶可以通過這個索引號來存取數(shù)組的每個元素。數(shù)組中的各元素是順序地安排在內(nèi)存中一段連續(xù)的存儲空間中。按照數(shù)組在定義時是否確定了元素個數(shù)可以將數(shù)組分為靜態(tài)數(shù)組和動態(tài)數(shù)組。

4.1.2一維靜態(tài)數(shù)組的定義與使用

1.一維靜態(tài)數(shù)組類型的定義一維靜態(tài)數(shù)組類型的定義格式如下。

[格式]:Type

數(shù)組類型名=array[下標類型]of基類型

數(shù)組num1各元素排列位置示意圖

2.一維靜態(tài)數(shù)組元素的使用

程序中一般并不整體地使用數(shù)組,而是使用數(shù)組元素,引用數(shù)組元素的格式如下。

[格式]:數(shù)組名[下標]【例4-1】隨機產(chǎn)生5個兩位正整數(shù)并存放到一維數(shù)組中,然后找出其中的最大值及其下標。程序設(shè)計界面如圖4-2所示,程序運行界面如圖4-3所示。圖4-2程序設(shè)計界面

圖4-3程序運行界面

4.1.3二維數(shù)組及多維數(shù)組的定義與使用

1.二維靜態(tài)數(shù)組類型的定義二維靜態(tài)數(shù)組比一維靜態(tài)數(shù)組多一個下標,其定義格式如下。[格式1]:Type

數(shù)組類型名=Array[下標類型1,下標類型2]of基類型[格式2]:Type

數(shù)組類型名=Array[下標類型1]ofArray[下標類型2]of基類型2.二維靜態(tài)數(shù)組的使用

引用二維數(shù)組的數(shù)組元素的格式如下。

[格式]:二維數(shù)組名[下標1,下標2]【例4-2】

編寫程序?qū)崿F(xiàn)下面的功能:輸入兩個學生三門功課的成績,并統(tǒng)計每個學生的總成績。程序設(shè)計界面如圖4-4所示,程序運行界面如圖4-5所示。圖4-4程序設(shè)計界面

圖4-5程序運行界面

4.1.4動態(tài)數(shù)組的定義與使用

1.動態(tài)數(shù)組的定義

一維動態(tài)數(shù)組的定義格式如下。

[格式]:Type

數(shù)組類型名=Arrayof基類型

多維動態(tài)數(shù)組的定義格式如下。

[格式]:Type

數(shù)組類型名=ArrayofArrayof…Arrayof(基類型)注意:關(guān)于動態(tài)數(shù)組,應(yīng)注意以下幾點。(1)動態(tài)數(shù)組的下標是從零開始。(2)動態(tài)數(shù)組各行的長度可以不相等。(3)無論是靜態(tài)數(shù)組還是動態(tài)數(shù)組,都可以調(diào)用標準函數(shù)Low、High和Length來返回數(shù)組的最小下標值、最大下標值和數(shù)組的長度。2.動態(tài)數(shù)組的使用

【例4-3】設(shè)計一個程序,程序的設(shè)計界面如圖4-6所示,程序運行界面分別如圖4-7和4-8所示。程序運行時單擊【一維數(shù)組】按鈕,將隨機生成一個一維數(shù)組(長度為1-9中的某個數(shù)),并顯示;單擊【二維數(shù)組】按鈕,將會隨機生成一個具有兩行的二維數(shù)組(每行長度為1-9中的某個數(shù)),兩個數(shù)組的元素值都是100以內(nèi)的非負整數(shù)。圖4-6程序設(shè)計界面圖4-7程序運行界面圖4-8程序運行界面4.2典型實例練能力4.2.1典型實例一:冒泡法排序

【實例題目】

編寫一個冒泡法排序程序,程序的設(shè)計界面如圖4-9所示。程序運行時,單擊【輸入】按鈕將從鍵盤上輸入任意10個整數(shù)并顯示在第一個編輯框中,然后單擊【冒泡排序】按鈕,10個整數(shù)將按照從小到大的順序重新排列,如圖4-10所示。圖4-9程序設(shè)計界面

圖4-10程序運行界面4.2.2典型實例二:二維數(shù)組的“鞍點”

【實例題目】

所謂二維數(shù)組的“鞍點”是指在本行中最大但在本列中最小的數(shù)組元素,有的數(shù)組有“鞍點”,有的數(shù)組沒有。編程尋找一個從鍵盤上輸入的3行4列數(shù)組的“鞍點”。程序設(shè)計界面如圖4-11所示,程序運行界面如圖4-12和圖4-13所示。圖4-11程序設(shè)計界面圖4-12程序運行界面(一)

圖4-13程序運行界面(二)4.3上機練習重應(yīng)用4.3.1上機練習一:選擇法排序

【練習題目】

編寫一個選擇法排序程序,程序的設(shè)計界面如圖4-14所示。程序運行時單擊【輸入整數(shù)】按鈕,將允許用戶輸入5個整數(shù),并以逗號隔開的形式顯示在第一個編輯框中。單擊【選擇法排序】按鈕,則排好序的5個整數(shù)將顯示在第二個編輯框里(從小到大排列),程序運行界面如圖4-15所示。圖4-14程序設(shè)計界面圖4-15程序運行界面4.3.2上機練習二:求學生的平均成績

【練習題目】

某班有M名同學,本學期開了N門課,期末考試后,要統(tǒng)計每個學生的平均分。請你編寫一個程序?qū)崿F(xiàn)該功能,程序的設(shè)計界面如圖4-16所示,程序運行時單擊【形成學號與成績】按鈕將生成有序的學號并隨機產(chǎn)生成績,然后單擊【計算平均分】按鈕,將計算出每個學生的平均分,如圖4-17所示。圖4-16程序設(shè)計界面圖4-17程序運行界面第5章過程與函數(shù)

本章要點:

理解過程與函數(shù)的概念

掌握過程與函數(shù)的定義方法

掌握過程與函數(shù)中三種參數(shù)的傳遞的概念及特點

掌握過程與函數(shù)的調(diào)用方法5.1循序漸進學理論

5.1.1過程與函數(shù)的概念

1.過程的概念

Delphi語言的過程有兩種:標準過程與自定義過程。標準過程是系統(tǒng)內(nèi)部定義好的過程。自定義過程是用戶自己編寫代碼定義的過程,它又分為事件過程與通用過程兩種。2.函數(shù)的概念

函數(shù)也是完成某一功能的程序段,與過程最重要的區(qū)別在于函數(shù)有返回值而過程沒有。Delphi的函數(shù)也有兩類:標準函數(shù)和自定義函數(shù)。

5.1.2過程的定義與調(diào)用

5.1.2過程的定義與調(diào)用通用過程由用戶自己創(chuàng)建并通過程序調(diào)用,創(chuàng)建通用過程也稱過程聲明或過程定義。

[格式]:Procedure過程名([形參表])//Procedure表示這是一個過程,有形參也可以沒有

局部聲明

//聲明常量、變量或另一個過程或函數(shù)等

begin

語句;//簡單語句或復合語句都可以

end;

2.過程的調(diào)用

創(chuàng)建的通用過程是為了調(diào)用的,通用過程只有通過調(diào)用才能被執(zhí)行。若想要調(diào)用某個過程,該過程必須在調(diào)用語句之前定義。

[格式1]:過程名(實參表);[格式2]:過程名;或者:過程名();

【例5-1】

定義一個過程,用來在一個Memo組件中顯示若干行歡迎詞,歡迎詞的顯示次數(shù)是隨機的,但至少顯示3次,至多顯示7次。程序的設(shè)計界面如圖5-2所示,程序運行時,單擊【顯示歡迎詞】按鈕,將在Memo組件中顯示出若干行歡迎詞,如圖5-3所示。圖5-2程序設(shè)計界面圖5-3程序運行界面5.1.3函數(shù)的定義與調(diào)用

1.函數(shù)的定義

函數(shù)也是完成一定功能的程序段,與過程的主要區(qū)別就是函數(shù)有返回值,其定義方式稍有不同,函數(shù)的定義格式如下。

[格式]:Function函數(shù)名(形參表):返回值類型;

局部聲明

begin

語句;end;

2.函數(shù)的調(diào)用

函數(shù)也是通過調(diào)用來運行的,調(diào)用函數(shù)的一般格式如下。[格式1]:變量名=函數(shù)名(實參列表);[格式2]:表達式運算符函數(shù)名(實參列表);注意:函數(shù)有一個返回值,函數(shù)調(diào)用就相當于一個同類型的值,可以和同類型的數(shù)據(jù)一樣作為表達式或表達式的一部分參加運算?!纠?-2】定義一個函數(shù),用來求任意非負整數(shù)各位數(shù)字之和。程序設(shè)計界面如圖5-4所示,程序運行時,在第一個編輯框中輸入一個整數(shù),然后按【計算】按鈕,將把該整數(shù)的各位數(shù)字和求出來并顯示在第二個編輯框中,如圖5-5所示。要求把求整數(shù)的各位數(shù)字和編寫成一個函數(shù)。圖5-4程序設(shè)計界面圖5-5程序運行界面5.1.4參數(shù)的傳遞

1.常量參數(shù)和值參的傳遞

在過程或函數(shù)的首部中,定義形參時,如果形參名前有保留字Const,說明該參數(shù)是常量參數(shù)。在函數(shù)或過程中不允許給常量參數(shù)賦值。在定義形參時,如果形參前沒有任何保留字,則說明該參數(shù)為值參,在函數(shù)或過程中可以給值參賦值,但在調(diào)用該函數(shù)或過程時不會改變與之對應(yīng)的實參的值。值參的這種傳遞方式稱為值傳遞,值傳遞是一種單向傳遞,即可把實參值傳遞給形參,但對形參的改變不會傳給實參?!纠?-3】編寫一個求兩個數(shù)的乘積的應(yīng)用程序,程序設(shè)計界面如圖5-6所示。程序運行時,在“操作數(shù)1”右邊編輯框輸入任意整數(shù),在“操作數(shù)2”右邊編輯框也輸入任意整數(shù),單擊按鈕【運算】將把兩個操作數(shù)的乘積運算出來并顯示在最下面一個編輯框里,如圖5-7所示。要求把求兩個數(shù)的乘運算編寫成一個通用過程。

圖5-6程序設(shè)計界面圖5-7程序運行界面2.變量參數(shù)(變參)的傳遞

在定義過程或函數(shù)時,形參表中Var之后的參數(shù)即是變參。變參是按地址傳遞的,即在調(diào)用過程或函數(shù)時,實參的地址被傳遞給形參,故形參和實參實際上是同一個地址單元。

【例5-4】重新做【例5-3】,希望得到正確的答案。程序設(shè)計界面如圖5-6所示,程序的運行界面如圖5-8所示。

圖5-8程序運行界面5.1.5子程序的嵌套與遞歸

1.子程序的嵌套

在Delphi中把過程與函數(shù)統(tǒng)稱為子程序,子程序既能嵌套定義也能嵌套調(diào)用。嵌套定義的含義是,在一個子程序中的定義中又包含了另一個子程序的定義。嵌套調(diào)用是指在調(diào)用某個子程序時,該子程序又調(diào)用了其它的子程序。在嵌套定義時,被包含的子程序稱為內(nèi)層子程序,包含其它子程序的子程序稱為外層子程序。緊鄰的兩層稱為鄰層,否則稱為隔層。關(guān)于子程序的嵌套定義和嵌套調(diào)用必須遵循如下規(guī)則:(1)外層必須完全包含內(nèi)層。(2)外層可以調(diào)用內(nèi)層中的鄰層子程序,但不能隔層調(diào)用。(3)內(nèi)層可以調(diào)用外層中的鄰層和隔層子程序。(4)同一層的子程序允許后定義的子程序調(diào)用先定義的子程序,反之,需要用Forward(超前引用)在子程序的首部后面對后定義的子程序予以說明才能調(diào)用。【例5-5】組合數(shù)的計算公式為。

請用子程序的嵌套來求組合數(shù)。程序設(shè)計界面如圖5-9所示,程序運行界面如圖5-10所示。

圖5-9程序設(shè)計界面

圖5-10程序運行界面

2.子程序的遞歸

子程序直接或間接調(diào)用自身稱為子程序的遞歸調(diào)用。

【例5-6】有6個人坐在一塊兒,問第6個人多大年紀?他說他比第5個人大3歲;再問第5個人多少歲,他說比第4個人大3歲;再問第4個人多少歲,他說比第3個人大3歲;問第3個人多少歲,他說比第2個人大3歲;問第2個人多少歲,他說比第1個人大3歲;最后問到第1個人多少歲,他說12歲。請問第6個人多少歲?用子程序遞歸調(diào)用來實現(xiàn)。程序設(shè)計界面如圖5-11所示,程序運行界面如圖5-12所示。

圖5-11程序設(shè)計界面

圖5-12程序運行界面

從程序設(shè)計的角度來說,遞歸過程必須解決兩個問題:一是遞歸計算的公式,二是遞歸結(jié)束的條件。本題可以寫成:遞歸計算公式:

A(n)=A(n-1)+3n>=1遞歸結(jié)束條件:

A(1)=1

凡是能夠表示成上述式子的數(shù)學問題均可以用遞歸來實現(xiàn),在遞歸函數(shù)中一般可采用雙分支語句來實現(xiàn):if(遞歸結(jié)束條件)then函數(shù)名:=遞歸終止值else函數(shù)名:=遞歸公式;式子中的函數(shù)名也可以用Result來代替。5.2典型實例練能力

5.2.1典型實例一:驗證哥德巴赫猜想

【實例題目】

德國著名數(shù)學家哥德巴赫提出:任何一個大于等于6的偶數(shù)都可以表示為兩個素數(shù)之和。請編寫程序驗證這一猜想。程序的設(shè)計界面如圖5-13所示,程序運行時,在第一個編輯框里輸入任意大于等于6的偶數(shù),單擊【驗證】按鈕,則在另一編輯框里顯示兩個符合要求的素數(shù)。程序運行界面如圖5-14所示。要求判斷某數(shù)是否為素數(shù)用一個函數(shù)來實現(xiàn)。圖5-13程序設(shè)計界面

圖5-14程序運行界面

5.2.2典型實例二:斐波那契(Fibonacci)數(shù)列

【實例題目】

斐波那契(Fibonacci)數(shù)列是一個典型的可用遞歸求解的問題。該數(shù)列來源于兔子的繁殖,大意是:小兔子和大兔子沒有繁殖能力,只有老兔子才有繁殖能力。假設(shè)第1個月有一對小兔子,第2個月長成大兔子,第3個月長成老兔子,并生出一對小兔子;第4個月,老兔子繼續(xù)生出一對小兔子,同時原來的小兔子長成大兔子,這樣在第4個月就有一對老兔子,一對大兔子和一對小兔子共3對兔子;依此類推,假設(shè)兔子永遠不死,請編寫程序求出任意一個月有多少對兔子。程序設(shè)計界面如圖5-15所示,程序運行時輸入月數(shù),然后單擊【計算】按鈕,將顯示出該月的兔子對數(shù),如圖5-16所示。

圖5-15程序設(shè)計界面

圖5-16程序運行界面

5.3上機練習重應(yīng)用

5.3.1上機練習一:分離字母和數(shù)字字符

【練習題目】

編寫一個程序,用來分離出字符串中的字母字符和數(shù)字字符。程序的設(shè)計界面如圖5-17所示。程序運行時,在第一個編輯框中輸入任意一串字符,然后單擊【分離】按鈕,將把字母和數(shù)字分離開來并顯示在對應(yīng)的編輯框中,如圖5-18所示。

圖5-17程序設(shè)計界面

圖5-18程序運行界面

5.3.2上機練習二:校園歌手評分程序

【練習題目】

請為某次校園歌手大賽編寫一個評分程序,設(shè)共有裁判六人,評分滿分為10分,除去一個最高分,再除去一個最低分,剩余的評分的平均值即為選手得分。程序的設(shè)計界面如圖5-19所示,程序運行時,分別在6個編輯框中輸入6個評委的評分,然后按【得分】按鈕,將算出該選手的得分并在相應(yīng)的編輯框中顯示出來,如圖5-20所示。按【清除】按鈕,將清除掉所有編輯框中的內(nèi)容。要求:編寫一個過程求選手得分,得分通過參數(shù)返回給調(diào)用過程。圖5-19程序設(shè)計界面

圖5-20程序運行界面

第6章用戶自定義類型

本章要點:

理解并掌握枚舉類型的概念、定義與使用方法

理解并掌握子界類型的概念、定義與使用方法

理解并掌握集合類型的概念、定義與使用方法

理解并掌握記錄類型的概念、定義與使用方法6.1循序漸進學理論

6.1.1枚舉類型的定義與使用

1.枚舉類型的定義

枚舉類型就是將要用到的數(shù)據(jù)一一列舉出來,因此,枚舉類型要求數(shù)據(jù)個數(shù)有限,特別適合于表示物體的顏色、人的職業(yè)、星期幾、月份等非數(shù)值型數(shù)據(jù)。枚舉類型的定義格式如下。

[格式]:Type

類型標識符=(標識符1,標識符2,標識符3…標識符n);2.枚舉類型的使用

枚舉類型屬于順序類型,枚舉類型的每個元素對應(yīng)一個有序的整數(shù)

,其中第一個元素對應(yīng)序數(shù)0。因此,枚舉類型本質(zhì)上是用一些枚舉常量來表示一組連續(xù)的整數(shù)。但枚舉常量不能直接進行算術(shù)運算,可以進行關(guān)系運算或間接的算術(shù)運算。例如,有下列枚舉類型的定義:TypeColor1=(Red,Green,Blue,Yellow);【例6-1】編寫一個設(shè)置文本格式的應(yīng)用程序,程序的設(shè)計界面如圖6-1所示。程序運行時,在編輯框中顯示的文本是“輕松學習Delphi”。程序運行時,單擊【宋體】按鈕,文本字體為宋體;單擊【隸書】按鈕,文本字體為隸書;單擊【黑體】按鈕,文本字體變?yōu)楹隗w。圖6-2是單擊隸書時的運行界面。要求用枚舉類型實現(xiàn)。圖6-1程序設(shè)計界面

圖6-2程序運行界面

6.1.2子界類型的定義與使用

1.子界類型的定義

子界類型表示有序類型中的一部分,子界類型的定義格式如下。

[格式]:Type

類型標識符=常量1..常量2;2.子界類型的使用子界類型允許進行多種運算,這取決于子界類型的基類型。和枚舉類型一樣,可以進行關(guān)系運算。但和枚舉類型也有不同之處,子界類型可以直接進行算術(shù)運算,而且子界類型的第一個元素的序數(shù)值為1而不是0。

6.1.3集合類型的定義與使用

1.集合類型的定義

集合是具有相同性質(zhì)但又可以區(qū)分開來的對象的全體。集合的對象可以是無限的,也可以是有限的。集合中的對象稱為元素。

集合類型的定義格式如下。

[格式]:Type

類型標識符=setof基類型;

2.集合類型的使用

定義了集合類型和聲明了集合類型變量后就可以使用集合類型。在使用集合類型時需注意三點:集合變量的取值;集合的交、并和差運算;集合的各種關(guān)系運算。

【例6-2】編寫一個判斷字符串中是否有元音字母的程序,程序的設(shè)計界面如圖6-3所示。程序運行時,在“輸入單詞”后面的編輯框中輸入一個任意單詞,然后單擊【判斷】按鈕,將在“結(jié)果”旁的編輯框中顯示有無元音字母的文本。其中,元音字母為“a,e,i,o,u”等字母,程序運行界面如圖6-4所示。要求用集合類型實現(xiàn)。圖6-3程序設(shè)計界面

圖6-4程序運行界面

6.1.4記錄類型的定義與使用

1.記錄類型的定義記錄類型的定義格式如下。

[格式]:Type

記錄類型標識符=Record

字段1:類型1;

字段2:類型2;

字段n:類型n;end;2.記錄類型的使用

(1)限定訪問記錄的字段格式如下:[格式]:記錄變量名.字段名(2)使用With語句訪問記錄的字段格式如下:[格式]:With記錄變量名Do語句注意:With語句也可以嵌套?!纠?-3】編寫一個程序,用來輸入和顯示某單位員工基本信息。程序的設(shè)計界面如圖6-5所示,程序運行時,單擊【輸入信息】按鈕,用戶可以輸入員工的基本信息,包括姓名、職稱和基本工資。單擊【查看信息】按鈕,可以顯示剛剛輸入的該單位員工的基本信息,如圖6-6所示。

圖6-5程序設(shè)計界面

圖6-6程序運行界面

6.2典型實例練能力

6.2.1典型實例一:顏色選擇程序

【實例題目】

編寫一個顏色選擇程序,程序的設(shè)計界面如圖6-7所示。程序運行時,單擊【顯示各種顏色】按鈕,將顯示各種顏色以及代表該顏色的數(shù)字;在“你喜歡的顏色的數(shù)字=”旁的編輯框中輸入數(shù)字,單擊【選擇】按鈕,將顯示用戶選擇的顏色,程序運行界面如圖6-8所示。圖6-7程序設(shè)計界面

圖6-8程序運行界面

6.2.2典型實例二:學生信息處理程序

【實例題目】

假設(shè)某個班只有5名學生,考試完畢需要記錄每個學生的學號、姓名和各科成績(語文、數(shù)學、英語和文科綜合)。編寫一個學生信息的輸入和顯示程序,要求能夠輸入和顯示學生的學號、姓名和各科成績。程序設(shè)計界面如圖6-9,程序運行時,單擊【輸入并顯示學生信息】按鈕,將輸入學生的信息并顯示在窗體上,如圖6-10所示。圖6-9程序設(shè)計界面

圖6-10程序運行界面

6.3上機練習重應(yīng)用

6.3.1上機練習一:尋找1~100之間的全部素數(shù)

【練習題目】

編寫一個尋找1~100之間的全部素數(shù)的程序,程序的設(shè)計界面如圖6-11所示。程序運行時,單擊【尋找素數(shù)】按鈕將顯示1~100之間的全部素數(shù),如圖6-12所示。單擊【清除】按鈕,窗體上顯示的素數(shù)將消失。

圖6-11程序設(shè)計界面

圖6-12程序運行界面

6.3.2上機練習二:摸彩球

【練習題目】

商場搞促銷活動,顧客憑購物發(fā)票摸彩球。在裝球的小箱子里連續(xù)摸三次,每次摸的球都要放回去,如果三次摸的球顏色各不相同,那么該顧客就中獎了。假設(shè)箱子里一共只有3種顏色的球,分別為紅色球、綠色球和藍色球,請編寫程序找出不同的摸獎辦法,并顯示摸出的球。程序設(shè)計界面如圖6-13所示,程序運行界面如圖6-14所示。要求用枚舉類型實現(xiàn)。圖6-13程序設(shè)計界面

圖6-14程序運行界面

第7章常用組件的使用

本章要點:

掌握文本類組件的使用方法

掌握按鈕類組件的使用方法

掌握列表類組件的使用方法

掌握時鐘組件和通用對話框組件的使用方法

掌握菜單、工具欄和狀態(tài)欄的設(shè)計方法7.1循序漸進學理論

7.1.1文本類組件的使用

1.TLabel組件

(1)Caption屬性:即標題屬性,這是TLabel組件最重要的屬性,用來設(shè)置該組件中顯示的文本。(2)AutoSize屬性:該屬性用來決定標簽是否自動隨文本的長短而改變大小。(3)WordWrap屬性:該屬性用來決定標簽的文本是否可以折行顯示。(4)Alignment屬性:該屬性用來決定標簽中顯示的文本的對齊方式。

(5)Enabled屬性:該屬性用來決定該組件是否能即響應(yīng)用戶的操作。

(6)Visible屬性:該屬性用來決定在程序運行時組件是否可見。

(7)Font屬性:該屬性用來設(shè)置標簽組件中顯示的文本字體,是一個對象屬性。2.TEdit組件

(1)TEdit組件的常用屬性

Text屬性:該屬性代表顯示在編輯框中的文本。

ReadOnly屬性:該屬性用來決定編輯框中顯示的文本是否可以修改。

PasswordChar屬性:該屬性用來決定用戶輸入的字符是原樣顯示還是以密碼方式顯示。

CharCase屬性:該屬性用來控制編輯框中文本的大小寫。

AutoSelect屬性:該屬性用來決定當編輯框獲得焦點時,是否自動選定顯示的文本。

BorderStyle屬性:該屬性用來決定編輯框組件是否有邊框。

CanUndo屬性:該屬性用來指出對編輯框中顯示的內(nèi)容改變是否能夠撤消。

HideSelection屬性:該屬性用來決定當編輯框失去焦點時,選中的文本是否還是以選中的方式提供視覺提示。

MaxLength屬性:該屬性用來決定編輯框中最多能夠輸入或顯示的字符個數(shù)。

Modified屬性:該屬性是一個運行屬性,用來指示編輯框中的內(nèi)容是否發(fā)生了改變。

SelStart屬性:該屬性也是一個運行屬性,用來設(shè)置或指示選中文本的第一個字符的位置,文本框的第一個字符位置為0。

SelText屬性:該屬性也是一個運行屬性,用來設(shè)置或指示選中的文本。

SelLength屬性:該屬性也是一個運行屬性,用來設(shè)置或指示選中文本的長度。(2)TEdit組件的常用方法

SetFocus方法:該方法用于為編輯框設(shè)置焦點,無參數(shù)。

Clear方法:該方法用來清除編輯框中的所有文本,無參數(shù)。

ClearSelection方法:該方法用來清除編輯框中選中的文本,無參數(shù)。

Undo方法:該方法用來撤消在編輯框中最近所做的編輯操作。

ClearUndo方法:該方法用來清除“撤消”緩沖區(qū),從而不能對以前的操作做撤消操作,該方法無參數(shù)。

SelectAll方法:該方法用來選中編輯框中的所有文本。

CopyToClipboard方法:該方法用來把選中的文本復制到剪貼板上,相當于復制操作。

CutToClipboard方法:該方法用來把選中的文本移動到剪貼板上,相當于剪切操作。

PasteFromClipboard方法:該方法用來把剪切板上的文本粘貼到插入點處,相當于粘貼操作。

(3)TEdit組件的常用事件

OnChange事件:當Text屬性值發(fā)生改變時將觸發(fā)該事件。

OnKeyPress事件:當用戶按下鍵盤上一個ASCII碼鍵時將觸發(fā)該事件。

OnKeyDown事件:用戶按下鍵盤上的任何鍵時都會觸發(fā)該事件。

OnKeyUp事件:當用戶按下任何一個鍵后再松開時將觸發(fā)該事件。

【例7-1】設(shè)計一個簡易賬號和密碼的檢驗程序。對輸入的賬號和密碼規(guī)定如下:(1)賬號為不超過6位的數(shù)字,密碼為4位字符,在本題中,賬號假設(shè)為123456,密碼假定為Pass。(2)輸入密碼時,在屏幕上不顯示輸入的字符,而用“*”代替。(3)當輸入不正確,如賬號為非數(shù)字字符或賬號和密碼輸入不正確時,將顯示出消息框進行提示。程序的設(shè)計界面如圖7-1所示,程序的運行界面如圖7-2所示。圖7-1程序設(shè)計界面

圖7-2程序運行界面

3.TMemo組件

(1)TMemo組件的常用屬性

ScrollBars屬性:該屬性用來設(shè)置備注框是否出現(xiàn)滾動條以及滾動條的種類。

Lines屬性:按行處理文本。

WordWrap屬性:該屬性用來決定當輸入的文本到達右邊界時是否插入軟回車,以便換到下一行再輸入。(2)TMemo組件的常用方法

Add方法:該方法用來向字符串列表的尾部添加一個字符串。其語法格式如下:

functionAdd(constS:string):Integer;virtual;

Clear方法:該方法用來清空字符串列表。其語法格式如下:

procedureClear;virtual;abstract;

Delete方法:該方法用來從字符串列表中刪除一個指定的字符串。其語法格式如下:

procedureDelete(Index:Integer);virtual;abstract;

Insert方法:該方法用來向字符串列表中插入一個字符串。其語法格式如下:

procedureInsert(Index:Integer;constS:string);virtual;abstract;

Move方法:該方法用來在字符串列表中移動字符串的位置。其語法格式如下:

procedureMove(CurIndex,NewIndex:Integer);virtual;

LoadFromFile方法:該方法的作用是用指定的文件填充字符串列表。其語法格式如下:

procedureLoadFromFile(constFileName:string);virtual;

SaveToFile方法:該方法用來把字符串列表中的數(shù)據(jù)寫到某文件中去。其語法格式如下:

procedureSaveToFile(constFileName:string);virtual;【例7-2】編寫一個對文本文件進行操作的應(yīng)用程序,程序的設(shè)計界面如圖7-3所示。程序運行時在“輸入文件名”后面的文本框中輸入一個文本文件名,然后按【打開】按鈕將打開該文件。當用戶修改了文件的內(nèi)容后,可以通過單擊【保存】按鈕把文件保存起來?!炯羟小?、【復制】和【粘貼】按鈕的功能與剪貼板的相應(yīng)命令功能一致?!緞h除】按鈕的功能是刪除選中的文本。程序的運行界面如圖7-4所示。

圖7-3程序設(shè)計界面

圖7-4程序運行界面

4.TMaskEdit組件

(1)EditMask屬性:該字符用于控制輸入數(shù)據(jù)的格式。

(2)EditText屬性:該屬性代表TMaskEdit組件中輸入的格式化文本。7.1.2按鈕類組件的使用

1.TButton組件

(1)TButton組件的主要屬性

Caption屬性:標題屬性。

Cancel屬性:決定該按鈕是否為取消按鈕,默認值為False。

Default屬性:決定該按鈕是否為默認按鈕,缺省值為False。

(2)TButton組件的常用事件

OnClick事件:單擊事件,是TButton組件的最常用事件。

OnMouseDown事件:鼠標按下瞬間觸發(fā)該事件。

OnMouseMove事件:鼠標在TButton組件上移動時觸發(fā)該事件。

OnMouseUp事件:在TButton組件上松開按下的鼠標時將觸發(fā)該事件。2.TBitBtn組件

(1)Glyph屬性:為按鈕指定一個位圖文件,顯示在按鈕的表面。(2)Kind屬性:決定位圖按鈕的種類。位圖按鈕使用最多的屬性就是Kind。

3.TRadioButton組件和TRadioGroup組件

(1)TRadioButton組件的主要屬性

Caption屬性:用來設(shè)置單選按鈕的提示文字。

Alignment屬性:用來決定單選按鈕的標題文字出現(xiàn)的位置。

Checked屬性:該屬性用于標記單選按鈕的狀態(tài)。(2)TRadioButton組件的常用事件

OnClick事件:在單選按鈕上單擊時將發(fā)生該單選按鈕的OnClick事件。

4.TCheckBox組件

(1)TCheckBox組件的主要屬性

Checked屬性:該屬性用來標志復選框組件是否被選中。

AllowGrayed屬性:用來設(shè)定復選框是否能處于變灰狀態(tài)。

State屬性:該屬性用來確定該組件的狀態(tài)。(2)TCheckBox組件的常用事件

OnClick事件:單擊事件,在復選框上單擊時將發(fā)生該事件。

【例7-3】程序運行時,在單選按鈕組“統(tǒng)計年齡”中將自動生成3行2列共5個單選按鈕,如圖7-7所示。在統(tǒng)計年齡單選按鈕組中任意選中一個單選按鈕,備注框中立即顯示所選的項。單擊【關(guān)閉】按鈕或【Close】位圖按鈕,程序關(guān)閉。單擊【不可用】按鈕,統(tǒng)計年齡單選按鈕組不可用。程序設(shè)計界面如圖7-6所示,程序運行界面如圖7-7所示。圖7-6程序設(shè)計界面

圖7-7程序運行界面7.1.3列表類組件的使用

1.TListBox組件

(1)TListBox組件的常用屬性

Items屬性:該屬性用來存放列表框中的列表項,屬于TStrings類。

Columns屬性:該屬性用來設(shè)置在列表框中顯示列表項的列數(shù)。

Count屬性:該屬性是一個運行屬性,用來返回列表框中列表項的數(shù)目。

MultiSelect屬性:該屬性用來設(shè)置能否在列表框中選擇多個列表項,即是否允許多選。

ExtendedSelect屬性:該屬性只有在MultiSelect屬性值為True時才起作用,用來決定列表框是否允許擴展多選。

ItemIndex屬性:該屬性用來設(shè)置或返回選中的列表項的序號,第一個列表項的序號值為0。

Selected屬性:該屬性用來測試某個列表項是否被選中。

SelCount屬性:在MultiSelect屬性值為True時,用來返回選中的列表項的個數(shù)。

Sorted屬性:該屬性用來設(shè)置列表框中的列表項是否按字母順序排序。

TopIndex屬性:該屬性用來設(shè)置或獲取顯示在列表框中的第一個列表項的序號。(2)TListBox組件的常用方法

Clear方法:該方法的作用是清除列表框中的所有列表項,該方法無參數(shù)。

ClearSelection方法:該方法的作用是清除列表框中所有被選中的選項。

SelectAll方法:該方法用來選中列表框中的所有文本。

MoveSelection方法:該方法用來把列表框中的所有選中的列表項移動到另一個列表框中。

CopySelection方法:該方法用來把列表框中的所有選中的列表項復制到另一個列表框中。(3)TListBox組件的常用事件TListBox組件響應(yīng)的主要事件有:OnClick、OnKeyDown、OnKeyPress、OnKeyUp等。

2.TComboBox組件

(1)DropDownCount屬性:該屬性用來設(shè)置組合框的列表框中所能顯示的列表項的最大數(shù)目,默認情況下,列表框中可以顯示8個列表項,當超過8個列表框時將顯示出垂直滾動條。(2)Style屬性:該屬性用來設(shè)置或返回組合框的風格?!纠?-4】編寫一個向列表框中添加選項的應(yīng)用程序,程序的設(shè)計界面如圖7-8所示,程序的運行界面如圖7-9所示。程序運行時,在“輸入”后面的編輯框里輸入任意文本并按Enter鍵后,如果該文本不在列表框就自動添加到列表框中,如果該文本已在列表框中就不添加到列表框并且將編輯框里的文本以高亮度顯示,同時在列表框中選中相應(yīng)的列表項。圖7-8程序設(shè)計界面

圖7-9程序運行界面7.1.4TTimer時鐘組件的使用

(1)TTimer組件的屬性

Enabled屬性:該屬性用來設(shè)置程序運行時定時器是否正在運行。

Interval屬性:該屬性用來設(shè)置定時器兩次OnTimer事件發(fā)生的時間間隔,以毫秒為單位。(2)TTimer組件的事件

OnTimer事件:在Enabled屬性值為True時,該事件每隔一定時間間隔自動觸發(fā),觸發(fā)的時間間隔由Interval屬性指定?!纠?-5】利用TTimer組件,顯示系統(tǒng)的當前時間,要求每隔0.5秒顯示一次。程序設(shè)計界面如圖7-10所示,程序運行界面如圖7-11所示。圖7-10程序設(shè)計界面

圖7-11程序運行界面7.1.5對話框組件的使用

1.TOpenDialog組件

(1)TOpenDialog組件的常用屬性

DefaultExt屬性:該屬性用來指定默認的文件擴展名。

FileName屬性:該屬性用來返回用戶最近選中的文件的文件名,包括盤符和路徑。

Files屬性:該屬性用來返回用戶選中的所有文件的文件名列表。

Filter屬性:該屬性用來獲取或設(shè)置當前文件名篩選器字符串。

FilterIndex屬性:該屬性用來獲取或設(shè)置打開對話框中當前選定篩選器的索引。

InitialDir屬性:該屬性用來獲取或設(shè)置文件對話框顯示的初始目錄。

Title屬性:該屬性用來獲取或設(shè)置對話框標題。(2)TOpenDialog組件的常用方法Execute方法:該方法用來顯示打開對話框。注意:在Dialogs組件頁中,還有一個TOpenPictureDialog組件,該組件的功能與使用方法基本與TOpenDialog一致,不同之處只是該對話框供用戶選擇圖片文件。

2.TSaveDialog組件

3.TFontDialog組件

4.TColorDialog組件

溫馨提示

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

最新文檔

評論

0/150

提交評論