Delphi7应用教程课件_第1页
Delphi7应用教程课件_第2页
Delphi7应用教程课件_第3页
Delphi7应用教程课件_第4页
Delphi7应用教程课件_第5页
已阅读5页,还剩434页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基本數據類型與運算式2.1循序漸進學理論2.1.1基本數據類型

1.整型

描述存儲各種整數數據的類型即整型。

2.實型

描述存儲各種實數數據的類型為實型。

3.字元型描述存儲單個字元數據的類型。

4.字串型

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

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

標準常量:例如Boolean類型數據的取值True和False。

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

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

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

標準檔:例如Input、TextFile等。(2)自定義識別字必須遵循如下的命名規則:

由字母、數字和下劃線“_”組成。

以字母或下劃線開頭。

不能與保留字同名。

最好不與標準識別字同名。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;

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

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

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

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

變數名1:類型名1;

變數名2:類型名2;…

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

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

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

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

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

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

加法運算符、減法運算符和乘法運算符的結果的類型為參加運算的兩個數據中的精度高的類型。

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

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

運算式中通常有多個運算符,在計算運算式的值時,必須弄清這些運算符的運算次序,即運算符的優先順序。5.運算式

(1)算術運算式

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

s1+s2

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

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

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

[格式1]:變數名:=運算式;[功能]:將運算式的值賦值給變數。

[格式2]:對象.屬性名:=運算式;

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

[說明]:運算式的結果與變數或對象的屬性同屬於一種類型。2.1.6Delphi7.0的常用函數與過程1.數學類函數

(1)絕對值函數

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

(2)取整數函數

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

(3)取小數函數

[調用格式]:Frac(x):Extended;(4)平方函數

[調用格式]:Sqr(x):Extended;(5)平方根函數

[調用格式]:Sqrt(x):Extended;(6)三角函數

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

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

(8)自然對數函數

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

(9)亂數函數

[調用格式]:Random(x);2.字串處理函數與過程

(1)大小寫轉換函數

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

(2)比較字串大小函數

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

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

(4)查找位置函數

[調用格式]:Pos(s1,s2:String):Integer;(5)合併字串過程

[調用格式]AppendStr(vars1:String;Consts2:String);(6)截取子字串函數

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

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

[調用格式]:Insert(S1:String;vars:String;k:Integer);(9)數值和字串相互轉換函數

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

【實例題目】

利用本章學習的算術運算符和算術運算式,編寫一個程式,實現下麵的功能:輸入一個任意4位整數,計算千位、百位、十位和個位上的數字。程式設計介面如圖2-1所示,程式運行介面如圖2-2所示。程式運行時,輸入任意整數,單擊按鈕【個位數字】,將顯示個位數字,單擊按鈕【十位數字】,將顯示十位數字,其他依此類推。2.3上機練習重應用2.3.1上機練習一:簡單的函數計算器

【練習題目】

常用的計算器能求很多種函數的值,用戶也可以編寫一個程式計算某些函數的值。程式的設計介面如圖2-3所示,程式運行時輸入引數,單擊【】、【】、【】和【】按鈕,將分別計算出x的相應函數值,並顯示在函數值後面的編輯框中。程式運行介面如圖2-4所示。第3章基本程式設計語句

本章要點:

理解順序結構、選擇結構和迴圈結構程式設計的思想

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

掌握利用雙分支語句和多分支語句設計分支程式的方法

理解迴圈的概念

掌握迴圈程式設計的方法以及常用的演算法,如累加求和、窮舉法等 3.1循序漸進學理論3.1.1基本的順序結構語句及其應用

順序結構是程式設計中最常用也是最簡單的程式結構。所謂順序結構就是其中的語句是按照先後順序依次執行,程式執行的流程不會發生跳轉。

【例3-1】設計一個程式,程式設計介面如圖3-1所示。在程式設計時,編輯框顯示“遠方的朋友,歡迎您”文字,字型大小為12號,字體為宋體,字體顏色為紅色。程式運行時,單擊【改變】按鈕,編輯框文本內容不變,但字型大小改為20號,字體變為隸書,顏色變為藍色,如圖3-2所示。3.1.2選擇結構語句及其基本應用1.關係運算式與邏輯運算式

(1)關係運算符和關係運算式

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

關係運算式的一般格式及其功能如下。[格式]:運算式1關係運算符

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

注意:關係運算遵循以下規律。

關係運算式兩邊的數據類型必須一致。

9個關係運算符的運算級別相同,而且都是所有運算符中級別最低的。在同級別運算符中,按從左到右的順序運算,括弧裏的運算式最先運算。

當對字元進行大小比較時,Delphi對字母的大小寫是有區別的,並按照每個字元的ASCII碼值大小予以比較。

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

邏輯運算式就是用邏輯運算符把若干個關係運算式或邏輯值(True或False)連接起來的式子。

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

注意:邏輯運算遵循以下規律。

邏輯運算符與第二章講解的位運算符符號相同,但含義不同。當邏輯運算符兩邊的數據為數值時,此時的邏輯運算符轉化為位運算符,結果為整數而不是邏輯值。

邏輯運算符的優先順序別是:Not為第一級,And為第二級,Or和Xor為第三級。先運算級別高的,後運算級別低的,同級別運算符,按從左到右的順序運算。而括弧裏的運算式最先運算,不管其級別高低。

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

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

[格式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】

編寫一個做算術題的程式,程式的設計介面如圖3-3所示。程式執行時,單擊【出題】按鈕,將隨機產生100以內的非負加數和被加數,當在等號“=”右邊的方框裏寫出正確答案後,單擊【結果】按鈕,將顯示“答案正確”;如果輸入的答案不正確,將顯示“答案錯誤”,如圖3-4所示。3.多分支Case語句

[格式]:Case(運算式)

of

值1:語句1;

值2:語句2;

…

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

語句n+1;end;注意:(1)“運算式”的值必須是順序類型,即整型、字元型、布爾型、子界型和枚舉型。(2)“值1”到“值n”應該是“運算式”可能出現的值,它們還應該各不相同。(3)語句可以是簡單語句,也可以是複合語句。(4)Else語句可以省略,省略時如果“運算式”的值與“值1”~“值n”中的任何一個值均不相等,則不執行任何分支,直接跳轉到end;後面的語句執行。(5)Case語句可以用IF語句來實現,但IF語句不一定能用Case語句實現。【例3-3】

某個團體按如下規定交會費:收入在0~499元之間的交0.5%,收入在500~999元之間的交1%,收入在1000~1999元之間的交1.5%,收入在2000元及以上的交2%。請編寫程式實現:根據輸入的收入金額,計算出應該上交的會費。程式設計介面如圖3-5所示,程式運行介面如圖3-6所示。

3.1.3迴圈結構語句及其基本應用

1.While語句

[格式]:While(迴圈條件)

do//迴圈條件為關係或邏輯運算式,其值為True或False

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

利用While語句求2+3+…+50的和。程式設計介面如圖3-7所示,程式運行介面如圖3-8所示。

2.Repeat語句

[格式]:Repeat

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

【例3-5】

用Repeat語句實現【例3-4】的功能,程式設計介面和程式運行介面分別如圖3-7和3-8所示。

3.For語句

[格式]:For迴圈變數:=初值

To(DownTo)

終值

Do

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

【例3-6】

用For語句實現【例3-4】的功能,程式設計介面和程式運行介面仍然如圖3-7和3-8所示。

3.2典型實例練能力

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

【實例題目】

在很多場合需要輸入密碼,例如使用銀行卡、登錄電子郵箱、QQ聊天等。下麵利用IF語句編寫一個類似登錄服務的簡單程式,程式的設計介面如圖3-9所示。程式實現的功能如下:在編輯框中輸入密碼,單擊【確定】按鈕,如果輸入的密碼正確(假定正確密碼是“123abc”),就在另一個編輯框顯示“歡迎使用本系統”文本資訊,文本的字型大小為18號,字體為隸書,字體顏色為藍色,如圖3-10所示。如果輸入的密碼不正確,就顯示“警告,密碼錯!”文本,文本字型大小還是18號,字體為楷體,字體顏色為紅色,如圖3-11所示。

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

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

圖3-12程式設計介面

圖3-13程式運行介面

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

【實例題目】

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

程式的設計介面如圖3-14所示,程式運行時,單擊【計算】按鈕,將計算並顯示符合給定精度的值,如圖3-15所示。圖3-14程式設計介面

圖3-15程式運行介面

3.2.4典型實例四:素數判斷程式

【實例題目】

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

圖3-16程式設計介面

圖3-17程式運行介面

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

【實例題目】

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

圖3-18程式設計介面

圖3-19程式運行介面

3.3上機練習重應用

3.3.1上機練習一:求階乘

【練習題目】

關於階乘的問題數學上也經常遇到,請編寫程式求的值。程式設計介面如圖3-20所示,程式運行介面如圖3-21所示。圖3-20程式設計介面

圖3-21程式運行介面

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

【練習題目】

在兩個編輯框中任意輸入兩個正整數,求它們之間所有不能被4整除的數,並顯示出來。程式設計介面如圖3-22所示,程式運行介面如圖3-23所示。請編程實現上面的功能。

圖3-22程式設計介面

圖3-23程式運行介面

第4章數組程式設計

本章要點:

理解數組的概念

掌握一維數組和二維數組的含義與定義方法

掌握引用數組元素的方法

掌握與數組有關的常用演算法4.1循序漸進學理論

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

4.1.2一維靜態數組的定義與使用

1.一維靜態數組類型的定義一維靜態數組類型的定義格式如下。

[格式]:Type

數組類型名=array[下標類型]of基類型

數組num1各元素排列位置示意圖

2.一維靜態數組元素的使用

程式中一般並不整體地使用數組,而是使用數組元素,引用數組元素的格式如下。

[格式]:數組名[下標]【例4-1】隨機產生5個兩位正整數並存放到一維數組中,然後找出其中的最大值及其下標。程式設計介面如圖4-2所示,程式運行介面如圖4-3所示。圖4-2程式設計介面

圖4-3程式運行介面

4.1.3二維數組及多維數組的定義與使用

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

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

數組類型名=Array[下標類型1]ofArray[下標類型2]of基類型2.二維靜態數組的使用

引用二維數組的數組元素的格式如下。

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

編寫程式實現下麵的功能:輸入兩個學生三門功課的成績,並統計每個學生的總成績。程式設計介面如圖4-4所示,程式運行介面如圖4-5所示。圖4-4程式設計介面

圖4-5程式運行介面

4.1.4動態數組的定義與使用

1.動態數組的定義

一維動態數組的定義格式如下。

[格式]:Type

數組類型名=Arrayof基類型

多維動態數組的定義格式如下。

[格式]:Type

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

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

【實例題目】

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

圖4-10程式運行介面4.2.2典型實例二:二維數組的“鞍點”

【實例題目】

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

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

【練習題目】

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

【練習題目】

某班有M名同學,本學期開了N門課,期末考試後,要統計每個學生的平均分。請你編寫一個程式實現該功能,程式的設計介面如圖4-16所示,程式運行時單擊【形成學號與成績】按鈕將生成有序的學號並隨機產生成績,然後單擊【計算平均分】按鈕,將計算出每個學生的平均分,如圖4-17所示。圖4-16程式設計介面圖4-17程式運行介面第5章過程與函數

本章要點:

理解過程與函數的概念

掌握過程與函數的定義方法

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

掌握過程與函數的調用方法5.1循序漸進學理論

5.1.1過程與函數的概念

1.過程的概念

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

函數也是完成某一功能的程式段,與過程最重要的區別在於函數有返回值而過程沒有。Delphi的函數也有兩類:標準函數和自定義函數。

5.1.2過程的定義與調用

5.1.2過程的定義與調用通用過程由用戶自己創建並通過程式調用,創建通用過程也稱過程聲明或過程定義。

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

局部聲明

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

begin

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

end;

2.過程的調用

創建的通用過程是為了調用的,通用過程只有通過調用才能被執行。若想要調用某個過程,該過程必須在調用語句之前定義。

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

【例5-1】

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

1.函數的定義

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

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

局部聲明

begin

語句;end;

2.函數的調用

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

1.常量參數和值參的傳遞

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

圖5-6程式設計介面圖5-7程式運行介面2.變數參數(變參)的傳遞

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

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

圖5-8程式運行介面5.1.5副程式的嵌套與遞歸

1.副程式的嵌套

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

請用副程式的嵌套來求組合數。程式設計介面如圖5-9所示,程式運行介面如圖5-10所示。

圖5-9程式設計介面

圖5-10程式運行介面

2.副程式的遞歸

副程式直接或間接調用自身稱為副程式的遞歸調用。

【例5-6】有6個人坐在一塊兒,問第6個人多大年紀?他說他比第5個人大3歲;再問第5個人多少歲,他說比第4個人大3歲;再問第4個人多少歲,他說比第3個人大3歲;問第3個人多少歲,他說比第2個人大3歲;問第2個人多少歲,他說比第1個人大3歲;最後問到第1個人多少歲,他說12歲。請問第6個人多少歲?用副程式遞歸調用來實現。程式設計介面如圖5-11所示,程式運行介面如圖5-12所示。

圖5-11程式設計介面

圖5-12程式運行介面

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

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

A(1)=1

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

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

【實例題目】

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

圖5-14程式運行介面

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

【實例題目】

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

圖5-15程式設計介面

圖5-16程式運行介面

5.3上機練習重應用

5.3.1上機練習一:分離字母和數字字符

【練習題目】

編寫一個程式,用來分離出字串中的字母字元和數字字符。程式的設計介面如圖5-17所示。程式運行時,在第一個編輯框中輸入任意一串字元,然後單擊【分離】按鈕,將把字母和數字分離開來並顯示在對應的編輯框中,如圖5-18所示。

圖5-17程式設計介面

圖5-18程式運行介面

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

【練習題目】

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

圖5-20程式運行介面

第6章用戶自定義類型

本章要點:

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

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

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

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

6.1.1枚舉類型的定義與使用

1.枚舉類型的定義

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

[格式]:Type

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

枚舉類型屬於順序類型,枚舉類型的每個元素對應一個有序的整數

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

圖6-2程式運行介面

6.1.2子界類型的定義與使用

1.子界類型的定義

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

[格式]:Type

類型識別字=常量1..常量2;2.子界類型的使用子界類型允許進行多種運算,這取決於子界類型的基類型。和枚舉類型一樣,可以進行關係運算。但和枚舉類型也有不同之處,子界類型可以直接進行算術運算,而且子界類型的第一個元素的序數值為1而不是0。

6.1.3集合類型的定義與使用

1.集合類型的定義

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

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

[格式]:Type

類型識別字=setof基類型;

2.集合類型的使用

定義了集合類型和聲明瞭集合類型變數後就可以使用集合類型。在使用集合類型時需注意三點:集合變數的取值;集合的交、並和差運算;集合的各種關係運算。

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

圖6-4程式運行介面

6.1.4記錄類型的定義與使用

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

[格式]:Type

記錄類型識別字=Record

字段1:類型1;

字段2:類型2;

…

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

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

圖6-5程式設計介面

圖6-6程式運行介面

6.2典型實例練能力

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

【實例題目】

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

圖6-8程式運行介面

6.2.2典型實例二:學生資訊處理程式

【實例題目】

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

圖6-10程式運行介面

6.3上機練習重應用

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

【練習題目】

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

圖6-11程式設計介面

圖6-12程式運行介面

6.3.2上機練習二:摸彩球

【練習題目】

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

圖6-14程式運行介面

第7章常用組件的使用

本章要點:

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

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

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

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

掌握菜單、工具欄和狀態欄的設計方法7.1循序漸進學理論

7.1.1文本類組件的使用

1.TLabel組件

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

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

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

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

(1)TEdit組件的常用屬性

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

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

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

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

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

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

CanUndo屬性:該屬性用來指出對編輯框中顯示的內容改變是否能夠撤銷。

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

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

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

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

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

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

SetFocus方法:該方法用於為編輯框設置焦點,無參數。

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

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

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

ClearUndo方法:該方法用來清除“撤銷”緩衝區,從而不能對以前的操作做撤銷操作,該方法無參數。

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

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

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

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

(3)TEdit組件的常用事件

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

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

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

OnKeyUp事件:當用戶按下任何一個鍵後再鬆開時將觸發該事件。

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

圖7-2程式運行介面

3.TMemo組件

(1)TMemo組件的常用屬性

ScrollBars屬性:該屬性用來設置備註框是否出現滾動條以及滾動條的種類。

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方法:該方法用來把字串列表中的數據寫到某檔中去。其語法格式如下:

procedureSaveToFile(constFileName:string);virtual;【例7-2】編寫一個對文本檔進行操作的應用程式,程式的設計介面如圖7-3所示。程式運行時在“輸入檔案名”後面的文本框中輸入一個文本檔案名,然後按【打開】按鈕將打開該檔。當用戶修改了檔的內容後,可以通過單擊【保存】按鈕把檔保存起來。【剪切】、【複製】和【粘貼】按鈕的功能與剪貼板的相應命令功能一致。【刪除】按鈕的功能是刪除選中的文本。程式的運行介面如圖7-4所示。

圖7-3程式設計介面

圖7-4程式運行介面

4.TMaskEdit組件

(1)EditMask屬性:該字元用於控制輸入數據的格式。

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

1.TButton組件

(1)TButton組件的主要屬性

Caption屬性:標題屬性。

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

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

(2)TButton組件的常用事件

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

OnMouseDown事件:滑鼠按下瞬間觸發該事件。

OnMouseMove事件:滑鼠在TButton組件上移動時觸發該事件。

OnMouseUp事件:在TButton組件上鬆開按下的滑鼠時將觸發該事件。2.TBitBtn組件

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

3.TRadioButton組件和TRadioGroup組件

(1)TRadioButton組件的主要屬性

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

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

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

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

4.TCheckBox組件

(1)TCheckBox組件的主要屬性

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

AllowGrayed屬性:用來設定複選框是否能處於變灰狀態。

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

OnClick事件:單擊事件,在複選框上單擊時將發生該事件。

【例7-3】程式運行時,在單選按鈕組“統計年齡”中將自動生成3行2列共5個單選按鈕,如圖7-7所示。在統計年齡單選按鈕組中任意選中一個單選按鈕,備註框中立即顯示所選的項。單擊【關閉】按鈕或【Close】位圖按鈕,程式關閉。單擊【不可用】按鈕,統計年齡單選按鈕組不可用。程式設計介面如圖7-6所示,程式運行介面如圖7-7所示。圖7-6程式設計介面

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

1.TListBox組件

(1)TListBox組件的常用屬性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.TComboBox組件

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

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

(1)TTimer組件的屬性

Enabled屬性:該屬性用來設置程式運行時定時器是否正在運行。

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

OnTimer事件:在Enabled屬性值為True時,該事件每隔一定時間間隔自動觸發,觸發的時間間隔由Interval屬性指定。【例7-5】利用TTimer組件,顯示系統的當前時間,要求每隔0.5秒顯示一次。程式設計介面如圖7-10所示,程式運行介面如圖7-11所示。圖7-10程式設計介面

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

1.TOpenDialog組件

(1)TOpenDialog組件的常用屬性

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

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

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

Filter屬性:該屬性用來獲取或設置當前檔案名篩選器字串。

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

InitialDir屬性:該屬性用來獲取或設置檔對話框顯示的初始目錄。

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

2.TSaveDialog組件

3.TFontDialog組件

4.TColorDialog組件

【例7-6】簡單的文本編輯器。程式設計介面如圖7-12所示。介面上有4個加速(SpeedButton)按鈕,它們的功能依次是保存檔、打開檔、設置文本字體和設置文本顏色。介面上還有4個對話框組件OpenDialog、SaveDialog、FontDialog和ColorDialog組件與一個M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论