湖北理工學(xué)院計(jì)算機(jī)學(xué)院09級計(jì)科Delphi程序設(shè)教程.ppt
《湖北理工學(xué)院計(jì)算機(jī)學(xué)院09級計(jì)科Delphi程序設(shè)教程.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《湖北理工學(xué)院計(jì)算機(jī)學(xué)院09級計(jì)科Delphi程序設(shè)教程.ppt(389頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
Delphi教程 課程介紹 Delphi是著名的Borland公司開發(fā)的可視化軟件開發(fā)環(huán)境 自1995年問世以來 帶來了程序設(shè)計(jì)中的一場重大變化 Delphi作為第四代編程語言 具有簡單 高效和功能強(qiáng)大等特點(diǎn) 這些特點(diǎn)使得它為廣大程序開發(fā)者所青睞 第1章Delphi基礎(chǔ)知識 1 1Delphi簡介Delphi作為一種可視化的編程環(huán)境 經(jīng)歷了7代產(chǎn)品的發(fā)展歷程 Borland公司在1995年推出了基于Windows平臺的Delphi1 Delphi2新增加的主要功能是對32位編程的支持 還增加了如數(shù)據(jù)模塊等多種高效的數(shù)據(jù)重用功能 Delphi3對其組件庫進(jìn)行增強(qiáng) 完全支持ActiveX組件及其創(chuàng)建 Delphi4提供了ObjectPascal語言的擴(kuò)展 但系統(tǒng)穩(wěn)定性較差 1999年推出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) 1 2Delphi7IDE1 2 1認(rèn)識集成開發(fā)環(huán)境Delphi7的IDE主要包括7個(gè)部分 主窗口 組件面板 工具欄 窗體設(shè)計(jì)器 代碼編輯器 對象觀察器和代碼瀏覽器 圖1 1Delphi7的IDE 1 主窗口主要包括 菜單欄 工具欄 標(biāo)題欄和組件面板Delphi7的主菜單包括11個(gè)下拉菜單注意 工具欄上的按鈕都提供了描述該按鈕功能的tooltip 除了組件面板IDE有6個(gè)獨(dú)立的工具欄IDE工具欄的定制功能并不僅限于配置需要顯示的按鈕 還可以調(diào)整工具欄 組件面板和菜單欄在主窗口中的位置 圖1 2Delphi7的主窗圖口 Delphi7組件板包含了350多個(gè)組件 是Delphi可視化編程的核心部件 它由27個(gè)選項(xiàng)卡組成組件面板如圖1 4所示包含了IDE中安裝的所有的VCL組件和ActiveX組件將組件板上的組件添加到窗體上的三種方法 單擊組件板上的所需組件的按鈕 然后在窗體適當(dāng)位置拖動(dòng)鼠標(biāo)畫出組件 即可將組件添加到窗體的指定位置上 圖1 4Delphi7的組件面板 雙擊組件板上的所需組件的按鈕 即可將組件添加到窗體的中心位置 按下鍵不放 單擊組件板上的所需組件的按鈕 所選組件出現(xiàn)藍(lán)色邊框 同時(shí)對象選擇按鈕將彈起組件板中的組件分為可視組件與非可視組件2 窗體設(shè)計(jì)器在創(chuàng)建新的項(xiàng)目時(shí) 窗體設(shè)計(jì)器是一個(gè)空白的窗口 可以用鼠標(biāo)調(diào)整組件在窗體設(shè)計(jì)器上的位置和大小 還可以用對象觀察器和代碼編輯器來控制組件的外觀和行為 3 對象觀察器利用對象觀察器 可以修改窗體或組件的屬性 或者使它們能夠響應(yīng)不同的事件 屬性 Property 是一些數(shù)據(jù) 如高度 顏色 字體等 它們決定了組件在屏幕上的外觀 事件 Event 則是一種消息處理機(jī)制 它能夠捕捉某種情況的發(fā)生并做出反應(yīng) 像鼠標(biāo)單擊和窗口打開就是兩種典型的事件 對象觀察器類包括Properties選項(xiàng)卡和Events選項(xiàng)卡 下圖兩個(gè)對象觀察器 左邊一個(gè)按種類排序 右邊一個(gè)按名字排序 注意 幫助系統(tǒng)是和對象觀察器緊密結(jié)合在一起的 想了解某個(gè)屬性或事件的幫助信息 只要在該屬性或事件上按下F1鍵 圖1 5按種類或名稱查看ObjectInspector 4 代碼編輯器代碼編輯器是輸入代碼來指定應(yīng)用程序行為的地方 也是Delphi根據(jù)應(yīng)用程序中的組件自動(dòng)生成代碼的地方 當(dāng)向應(yīng)用程序中加入一個(gè)窗體時(shí) Delphi會(huì)自動(dòng)創(chuàng)建一個(gè)新的單元 并添加到代碼編輯器頂部的標(biāo)簽中 5 代碼瀏覽器以一種樹狀視圖方式顯示列在代碼編輯器中的單元文件 通過它 可以方便地在單元文件中漫游或在單元文件中加入新的元素或者把已有的文件改名 要記住代碼瀏覽器和代碼編輯器有一對一的關(guā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í) 代碼編輯器中會(huì)自動(dòng)出現(xiàn)一些代碼 如下所示 unitUnit1 interfaceusesWindows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs typeTForm1 class TForm private Privatedeclarations public Publicdeclarations end varForm1 TForm1 implementation R dfm end 從上述源代碼清單中可以看出 窗體對象是從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)入代碼編輯器 如下用程序示例的項(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子句中 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)條等都是常見的組件 1 2 3Delphi7的特點(diǎn)Delphi最顯著的特點(diǎn)就是高效性和穩(wěn)定性 主要體現(xiàn)在以下4個(gè)方面 可視化開發(fā)環(huán)境的性能 編譯器的速度和已編譯代碼的效率 編程語言的功能及其復(fù)雜性 豐富的VCL1 可視化開發(fā)環(huán)境可視化開發(fā)環(huán)境通??煞譃?個(gè)部分 編輯器 調(diào)試窗口和窗體設(shè)計(jì)器 2 編譯器的速度和已編譯代碼的效率Pascal編譯器最著名特點(diǎn)就是速度快 而Delphi正是建立在這種編譯器基礎(chǔ)之上的 增加了鏈接和各種緩存策略 尤其是在VisualC 和C Builder中 3 編程語言的功能及其復(fù)雜性匯編是一種最有力的語言 即便是用匯編開發(fā)最簡單的應(yīng)用程序 難度也非常大 還可能一無所獲 4 豐富的VCLVCL是Delphi7最重要的組成部分 包含不同種類的組件 1 2 4幫助的使用 1 當(dāng)遇到問題時(shí) 可以嘗試按下 F1 鍵 一般情況下Delphi都會(huì)準(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)的幫助信息 有兩種解決辦法 一種辦法是在代碼編輯器中輸入WindowsAPI函數(shù)的名稱 然后將光標(biāo)定位到該名稱中 接著按下 F1 鍵 另一種辦法是通過 Help WindowsSDK 打開幫助文件Win32 hlp 在 索引 選項(xiàng)卡中查找 4 幫助文件打開時(shí) 要瀏覽相關(guān)內(nèi)容 可以按下工具欄中的 或 按鈕 通常這樣是在同一個(gè)主題中瀏覽 通過一些SeeAlso熱鏈接 也可以查看相關(guān)的幫助內(nèi)容 5 在組件欄上右擊 通過快捷菜單的Help命令 可以查看有關(guān)組件的幫助內(nèi)容 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)用程序 啟動(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組件 4 設(shè)置組件屬性選中組件 單擊ObjectInspector的標(biāo)題欄以激活對象觀察器 并選擇Properties選項(xiàng)卡 在對象觀察器中單擊要設(shè)置的屬性 進(jìn)行屬性設(shè)置 5 添加事件選中要添加事件的組件 激活對象觀察器 并選擇Event選項(xiàng)卡 在對象觀察器中單擊要添加的事件 在其右側(cè)輸入事件的響應(yīng)函數(shù)名稱 然后回車即可 6 編寫事件響應(yīng)代碼 選定要編寫事件響應(yīng)代碼的組件 打開Event選項(xiàng)卡 雙擊要編寫響應(yīng)代碼的事件右側(cè)的空白部分 進(jìn)入代碼編輯窗口 procedureTForm1 Button1Click Sender TObject 單擊放大按鈕 窗口將放大beginform1 Height form1 Height 10 窗口高度10form1 Width form1 Width 10 窗口寬度10end procedureTForm1 Button2Click Sender TObject 單擊縮小按鈕 窗口將縮小Beginform1 Height form1 Height 10 窗口高度減10 form1 Width form1 Width 10 窗口寬度減10end procedureTForm1 Button3Click Sender TObject 關(guān)閉窗口beginclose 退出end 7 編譯運(yùn)行程序 圖1 6例程運(yùn)行界面 1 4Delphi上機(jī)步驟1 啟動(dòng)程序2 添加組件在窗體設(shè)計(jì)器中添加如圖1 7所示的各組件 3 設(shè)置組件屬性4 編寫代碼組件屬性設(shè)置完成后 編寫如下代碼 圖1 7窗體布局圖 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 5 保存工程保存工程分為保存單元文件和保存項(xiàng)目文件兩步 第一步是保存單元文件 單擊工具欄上的Save按鈕 將打開SaveUnit1As窗口 默認(rèn)的單元文件名是 Unit1 pas 以 pas 為擴(kuò)展名 單元文件名根據(jù)需要可以另取 第二步是保存項(xiàng)目文件 單擊工具欄上SaveProject1As按鈕 默認(rèn)的項(xiàng)目文件名是 Project1 dpr 工程文件名根據(jù)需要可以另取以 dpr 為擴(kuò)展名 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)行界面圖 第2章Delphi語法基礎(chǔ) 2 1保留字與標(biāo)識符2 1 1標(biāo)識符標(biāo)識符是ObjectPascal語言中各種成分的名稱 這些成分包括變量 Var 常量 Const 類型 Type 過程 Procedure 函數(shù) Function 方法 Method 單元 Unit 等 標(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等 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)識符中間不允許有空格 5 不允許使用ObjectPascal語言的保留字作為標(biāo)識符 3 限定標(biāo)識符在Delphi程序中可引用多個(gè)單元 而各個(gè)單元中全局變量 函數(shù) 過程等可能會(huì)同名 在引用時(shí)需用限定標(biāo)識符來區(qū)分它們 VarY real Y System cos pi 其中System稱為限定符 而System cos稱為限定標(biāo)識符 2 1 2保留字保留字由系統(tǒng)規(guī)定具有特定意義 不能被重新定義或作他用 定義了65個(gè)保留字 注意 1 單詞at和on具有特殊含義 不要與它們同名 2 保留字和ObjectPascal一樣不區(qū)分大小寫 3 Delphi集成開發(fā)環(huán)境的代碼編輯器中 黑體顯示保留字和指令字 定義時(shí)不要與這些黑體字一樣 ObjectPascal的保留字 2 1 3指令符指令字只在特殊的程序位置 或當(dāng)上下文關(guān)聯(lián)時(shí)有意義的程序區(qū)段有自己特殊的意義 而在其他場合 用戶可對其重新定義 即可將其定義為標(biāo)識符 ObjectPascal不會(huì)指示出錯(cuò) 當(dāng)用戶重新定義這些指令字后 在作用域內(nèi)它們就失去了原來的意義了 ObjectPascal中規(guī)定的指令符有39個(gè)說明 指令符private protected public published和automated在定義對象類型時(shí)也作為保留字 而在其他場合則作為指令符 2 1 4注釋注釋可增加程序的可讀性和可維護(hù)性 ObjectPascal語言中注釋有三種形式 1 組合符號 與 的成對使用表示它們之間的內(nèi)容為注釋部分 2 組合符號 與 的成對使用表示它們之間的內(nèi)容為注釋部分 3 符號 的單個(gè)使用表示所在行的該符號之后的內(nèi)容為注釋 注意 1 注釋符 與 與 在使用時(shí)不支持注釋的嵌套 而且必須成對使用 2 對于單行和少量幾行注釋使用符號 對于大塊注釋使用 和 或 和 3 有時(shí)可利用注釋在代碼中形成一個(gè)醒目標(biāo)志 4 在注釋符 或 后緊接著是一個(gè)美元符號 時(shí) 表示該句是一個(gè)編譯器指令 它與普通的注釋不同 通常用來對編譯過程進(jìn)行設(shè)置 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ù)類型 無需定義就可以直接使用 2 高級數(shù)據(jù)類型體現(xiàn)了特殊的數(shù)據(jù)結(jié)構(gòu) 在使用之前必須由用戶自己定義 3 數(shù)據(jù)類型中整型 字符型 布爾型 枚舉型和子界型被稱為順序類型 其取值是一個(gè)有序集合 每一個(gè)可能取值都與順序有關(guān) 2 2 1數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù)可分為整數(shù)類型和實(shí)數(shù)類型 1 整數(shù)類型整數(shù)類型是存儲整數(shù)數(shù)據(jù)的類型 分為基本整形和一般整形 基本整形 短整型 小整型 長整型 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í)型 注意 Real類型與Double類型完全等價(jià) Currency類型至少有4位有效的小數(shù)位 2 2 2字符型數(shù)據(jù)ObjectPascal中的字符型數(shù)據(jù)可以分為字符型和字符串型2類7種 1 字符類型ObjectPascal包括3種形式的字符型數(shù)據(jù) 說明 1 前2種為基本字符類型后一種為一般類型 2 Char與AnsiChar完全等價(jià) 但Char常用 2 字符串類型字符串類型是存儲字符串?dāng)?shù)據(jù)的類型 ObjectPascal包括了4種形式的字符串型數(shù)據(jù) 說明 AnsiString類型的定義是動(dòng)態(tài)分配的 內(nèi)容由AnsiChar類型的字符組成 長度僅受可用內(nèi)存空間的限制 以空字符Nul作為結(jié)尾 String字符串類型 既可以是ShortString類型也可以是AnsiString類型 默認(rèn)定義是AnsiString類型 2 2 3布爾型數(shù)據(jù)布爾型數(shù)據(jù)用于關(guān)系運(yùn)算和條件語句的邏輯運(yùn)算 包括4種形式的布爾型數(shù)據(jù) 說明 1 后3種類型是為了兼容其他語言而設(shè)置的 編程時(shí)應(yīng)盡量使用Boolean類型 2 Boolean取值為False和True兩個(gè)符號常量 2 3常量與變量2 3 1常量常量即在程序的執(zhí)行過程中其值不能改變的量 常量有兩種 一種是常量值本身 也稱為直接常量 另一種是要用聲明定義的標(biāo)識符表示的常量 也稱為聲明常量 聲明常量又可以分為符號常量和類型常量 1 直接常量直接常量是指在程序中直接引用的常數(shù) 如整型常數(shù) 實(shí)型常數(shù) 字符型常數(shù) 字符串型常數(shù)和布爾型常數(shù) 2 聲明常量 1 符號常量在程序中 某一個(gè)常數(shù)反復(fù)多次出現(xiàn) 可以定義一個(gè)標(biāo)識符來代表該常數(shù) 這個(gè)標(biāo)識符就是符號常量 其值在定義后不會(huì)改變 也稱純常量 定義符號常量使用常量說明語句 其語法格式為 Const 其中Const是保留字 表示常量定義段開始 注意 保留字Const可單獨(dú)一行也可與常量一行 不能在程序中給常量另行賦值 否則將導(dǎo)致語法錯(cuò)誤 Delphi由常量值判斷常量名屬于哪種類型 2 類型常量類型常量用于保存數(shù)組 記錄 過程以及指針等類型的值 不能出現(xiàn)在常量表達(dá)式中 在默認(rèn)的編譯器狀態(tài)下 類型常量的值可改變 但當(dāng)在程序中加入編譯命令 j 時(shí) 則類型常量的值在運(yùn)行期就無法改變 聲明類型常量的語法規(guī)則為 Const 其中類型是除文件型和可變型的所有類型 常量值可以是和類型相應(yīng)的常量表達(dá)式 2 3 2變量1 變量的聲明變量在單元 函數(shù)或過程的聲明部分進(jìn)行聲明 聲明的位置決定了變量的作用域 聲明包括兩部分 變量名和它所屬的類型 變量聲明的語法格式為 Var 當(dāng)多個(gè)變量具有相同數(shù)據(jù)類型時(shí) 格式如下 Var 其中 Var是保留字 表示變量聲明段的開始 同類型的可超過一個(gè) 間用 分隔 可以是基本數(shù)據(jù)類型或是由用戶定義的高級數(shù)據(jù)類型 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ù)以合理的形式組合而成 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 將會(huì)觸發(fā)一個(gè)錯(cuò)誤 2 算術(shù)運(yùn)算符的優(yōu)先級同級運(yùn)算自左至右 如果含有括號 則先計(jì)算括號內(nèi)表達(dá)式的值 3 算術(shù)表達(dá)式將數(shù)學(xué)式改寫為算術(shù)表達(dá)式 考慮三個(gè)問題 一是語法 二是優(yōu)先級 三是類型 說明 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 其中 NOT是求 非 為一元運(yùn)算符 AND是求 與 OR是求 或 XOR是求 異或 均為二元運(yùn)算符 2 位運(yùn)算符 注意 右移操作時(shí)原值的低位丟失 高位補(bǔ)0 左移操作時(shí)原值的高位丟失 低位補(bǔ)0 3 關(guān)系運(yù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á)式格式為 當(dāng)兩個(gè)字符串用連接運(yùn)算符連接起來后 第二個(gè)字符串直接添加到第一個(gè)字符串的尾部 結(jié)果是包含兩個(gè)源字符串全部內(nèi)容的新字符串 如果要把多個(gè)字符串連接起來 每兩個(gè)字符串之間都要用 號分隔 2 4 4運(yùn)算符的優(yōu)先級 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)行處理 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è)后繼值 2 順序函數(shù)2 6語句2 6 1語句的基本概念按執(zhí)行時(shí)間可分為 聲明語句和可執(zhí)行語句 聲明語句包括單元說明語句 類型說明語句 變量說明語句 過程說明語句 函數(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之間沒有其他語句 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 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 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 賦值語句賦值語句的語法格式為 2 類型兼容類型兼容是指數(shù)據(jù)類型不完全相同的量之間能進(jìn)行的運(yù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)成 2 6 4條件語句和程序的選擇結(jié)構(gòu)實(shí)現(xiàn)選擇結(jié)構(gòu)的是IF語句和Case語句 這兩種語句又稱條件語句 條件語句的功能就是根據(jù)表達(dá)式的值有選擇地執(zhí)行一組語句 1 if語句通過條件的布爾表達(dá)式值選擇執(zhí)行路徑 ifthen else if語句分為簡單條件語句和復(fù)合條件語句 簡單條件語句的中不包含其他的條件語句 如果在If語句格式中的或本身又是一個(gè)If語句 則稱為If語句的嵌套 嵌套的If語句又被稱為復(fù)合條件語句 2 Case語句Case語句用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu) Case語句描述了多路擇一的功能 它根據(jù) 選擇器表達(dá)式 的值決定執(zhí)行相應(yīng)的語句 Case語句的語法格式為 caseof else end 說明 的值必須是順序類型 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 其語法格式為 whiledo 說明 可在 循環(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 until 3 For語句若知道要執(zhí)行多少次循環(huán)時(shí) 則使用For循環(huán)結(jié)構(gòu) For循環(huán)使用一個(gè)循環(huán)變量 每重復(fù)一次循環(huán)之后 循環(huán)變量的值就會(huì)自動(dòng)增加或者減少 For語句的語法格式為 for to downto do 說明 只能是順序類型 TO表示計(jì)數(shù)器遞增 DownTo表示計(jì)數(shù)器遞減 4 循環(huán)的嵌套循環(huán)語句的循環(huán)體中僅包含了簡單語句 稱為單重循環(huá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語句 可以放在循環(huán)體的任意位置 通常放在If語句之后 執(zhí)行Break語句的結(jié)果是 跳出整個(gè)循環(huán) 執(zhí)行之后的語句 執(zhí)行Continue語句的結(jié)果是 跳出本輪循環(huán) 然后判斷循環(huán)條件是否成立 再?zèng)Q定是否開始新一輪的循環(huán) 小結(jié)本章主要介紹了ObjectPascal的最基本的語法 主要包括基本詞法 基本數(shù)據(jù)類型 常量與變量 運(yùn)算符與表達(dá)式 常用函數(shù)與過程 語句等 第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)行界面圖 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è)窗體 名稱不能相同 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è)子窗口中顯示 第二類 單文檔界面 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)部事件 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í)自動(dòng)生成一個(gè)窗體Form1 再打開 File New Form 菜單生成一個(gè)窗體Form2 在Form1中添加兩個(gè)Button 1個(gè)Label組件 Form2中添加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í) 系統(tǒng)會(huì)彈出出錯(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ù) 第二種 信息輸入對話框InputBox函數(shù) InputQuery函數(shù) 1 ShowMessage過程其語法格式為 ShowMessage 2 ShowMessageFmt過程的語法格式為 ShowMessageFmt 3 MessageDlg函數(shù)其語法格式為 MessageDlg HelpCtx 4 MessageDlgPos函數(shù) 其語法格式為 MessageDlgPos HelpCtx X Y 可以指定對話框的顯示位置坐標(biāo) X Y 5 CreatMessageDialog函數(shù)其語法格式為 CreatMessageDialog 6 InputBox函數(shù)其語法格為 InputBox 7 InputQuery函數(shù)其語法格式為 InputQuery 3 2輸入顯示類組件3 2 1Edit組件編輯框 Edit 是一種通用組件 既可以輸入文本 又可以顯示文本 編輯框組件位于Standard組件板中 圖3 7編輯框Edit運(yù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屬性 定編輯框中的文本是否可以編輯 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)行界面圖 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)組件名 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)行界面圖 4 ScrollBars屬性 決定備注框是否具有滾動(dòng)條 5 WordWrap屬性 設(shè)置文本是否能夠換行 6 WantReturns屬性 用來設(shè)置備注框是否能插入 回車 鍵 7 WantTabs屬性 用來設(shè)置備注框是否能插入 Tab 鍵 2 Memo的使用 例3 4 利用編輯框 把編輯框中的文本輸入到Memo中 1 界面設(shè)計(jì) 創(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)行界面圖 procedureTForm1 FormActivate Sender TObject beginedit1 SetFocus end 3 2 4MaskEdit組件它限制用戶在所定義的位置輸入要求輸入的符號 掩碼編輯框 MaskEdit 組件位于Additional附加組件板 中 1 MaskEdit常用屬性 圖3 13Memo示例運(yùn)行界面圖 EditMask屬性EditMask屬性用來控制用戶輸入數(shù)據(jù)格式的掩碼字符串 掩碼字符串EditMask屬性分為三個(gè)部分 用分號分隔 第一部分是掩碼字符串的主要部分 它確定了數(shù)據(jù)的格式 第二部分決定是否將掩碼中的字符串作為數(shù)據(jù)的一部分 0表示不作為數(shù)據(jù)的一部分 1表示作為數(shù)據(jù)的一部分 它將影響屬性 第三部分指出在掩碼中用來代表未輸入數(shù)據(jù)的字符 2 EditText屬性 用來返回用戶輸入的數(shù)據(jù) 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)行界面圖 4 ModalResult屬性 用來決定模式窗體如何被關(guān)閉 2 Button的事件Button組件常用的事件如表所示 在下述兩種情況下 OnClick事件將被激發(fā) 1 用鼠標(biāo)單擊按鈕 2 按鈕獲得焦點(diǎn)時(shí)按下鍵或空格鍵 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)行界面圖 5 Spacing屬性 用來控制bitBtn按鈕中位圖與文本之間的 距離 象素個(gè)數(shù) 默認(rèn)值為4 2 BitBtn的事件BitBtn組件常用的事件如表所示 在下述兩種情況下 OnClick事件將被激發(fā) 1 用鼠標(biāo)單擊按鈕 2 按鈕獲得焦點(diǎn)時(shí)按下鍵或空格鍵 3 3 3SpeedButton組件快速按鈕 SpeedButton 是一種可以成組工作的按鈕 具有將位圖顯示在按鈕表面的功能 還具有允許其中一個(gè)按鈕被選中 按下 的功能 當(dāng)它單獨(dú)使用時(shí)具有開關(guān)的功能 快速按鈕位于Additonal組件板中 SpeedButton的主要屬性有 1 AllowAllUp屬性 控制是否允許單擊處于按下狀態(tài)的按鈕 使之恢復(fù)到松開狀態(tài) 默認(rèn)值為False 圖3 19快速按鈕SpeedButton運(yù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 復(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) 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 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 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)行界面圖 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屬性 控制列表框中行的高度 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)卡中 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 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 3 PageSize屬性 當(dāng)用戶按鍵盤上的PageUp或PageDown鍵時(shí) 滾動(dòng)條滾動(dòng)的距離是由PageSize屬性設(shè)置的 默認(rèn)是1 4 Position屬性 設(shè)置或返回滾動(dòng)條中小方塊的位置 5 SmallChange屬性 是用戶按滾動(dòng)條兩端的箭頭時(shí)滾動(dòng)條的距離 默認(rèn)值是1 6 SetPaxams方法 該過程相當(dāng)于分別設(shè)置Position Max和Min屬性 7 OnScroll事件 第三個(gè)參數(shù)返回滾動(dòng)條小方塊的位置 第二個(gè)參數(shù)返回滾動(dòng)條的狀態(tài) 3 6計(jì)時(shí)器Timer組件位于System組件板中 如圖所示 屬于非可視化組件 在設(shè)計(jì)時(shí)顯示為一個(gè)小時(shí)鐘圖標(biāo) 而在運(yùn)行時(shí)則不可見了 沖用來做一些后臺處理 1 Timer組件的主要屬性與事件 1 Enanled屬性 為Ture時(shí) 定時(shí)器開始工作 為False時(shí)定時(shí)器暫停工作 2 Interval屬性 用來設(shè)置定時(shí)器觸發(fā)周期 圖3 32Timer計(jì)時(shí)器 3 OnTimer事件 Timer組件只提供一個(gè)事件 即OnTimer 該事件以Interval屬性設(shè)置的頻率被觸發(fā) 3 7對話框組件3 7 1Opendialog組件用于打開一個(gè)已經(jīng)存在的文件 用戶選擇某一文件 其所在的驅(qū)動(dòng)器 文件夾 文件名以及擴(kuò)展名將被賦予Opendialog的filename屬性 Opendialog組件位于Dialogs組件板如圖3 34的所示的第一個(gè)組件 圖3 34Dialogs組件板 Opendialog組件的主要屬性 1 DefaultExt屬性 用于設(shè)置系統(tǒng)自動(dòng)附加的擴(kuò)展文件名 既在用戶沒有設(shè)置文件類型時(shí)系統(tǒng)會(huì)自動(dòng)附加該文件類型 2 Filter屬性 設(shè)置可打開的文件類型 Filter屬性的設(shè)置可點(diǎn)擊右端按鈕 打開如圖所示的對話框進(jìn)行設(shè)置 圖3 35FilterEditor對話框 3 FilterIndex屬性 設(shè)置默認(rèn)的Filter值 為1時(shí)則默認(rèn)的文件類型為Filter屬性中列舉的第一個(gè)文件類型 4 Initialdir屬性 對話框打開的初始化路徑 5 Options屬性 設(shè)置對話框的作用及表現(xiàn)形式 包括是否可選擇多個(gè)文件 是否允許長文件名 是否可以調(diào)節(jié)對話框的大小等 3 7 2Savedialog組件用于提供一個(gè)另存為對話框 用戶輸入某一文件 其所在的驅(qū)動(dòng)器 文件夾 文件名以及文件擴(kuò)展名將被賦予SaveDialog的filename屬性 Savedialog組件位于Dialogs組件板如圖3 34的所示的第二個(gè)組件 3 7 3Fontdialog組件用于提供一個(gè)字體對話框 用戶可以選擇需要的字體名稱 樣式 大小 效果及字體顏色等 這些選擇將被賦予Fontdialog的Font屬性 Fontdialog組件位于Dialogs組件板如圖3 34的所示的第五個(gè)組件 3 7 4Colordialog組件用于提供一個(gè)顏色對話框 用戶可以選擇需要的顏色等屬性 這些選擇將被賦予Colordialog的Color屬性 Colordialog組件位于Dialogs組件板如圖3 34所示第六個(gè)組件 3 8Win3 1組件3 8 1FileListBox組件用于顯示指定目錄文件名滾動(dòng)列表 位于如圖3 38所示W(wǎng)in3 1組件板中第八個(gè)組件 FileListBox組件的主要屬性 1 Directory屬性 設(shè)置當(dāng)前文件目錄 顯示的文件列及表自動(dòng)更新顯示文件目錄的文件 2 Drive屬性 用于設(shè)置當(dāng)前驅(qū)動(dòng)器盤的號 當(dāng)前屬性值改變時(shí) Directory屬性值自動(dòng)改變?yōu)樾碌尿?qū)動(dòng)器下的當(dāng)前目錄 圖3 38Win3 1組件板 3 ExtenderdSelect屬性 若為Ture則可按著鍵然后用鼠標(biāo)選擇多個(gè)文件 4 FileEdit屬性 用于將文件列表鏈接至一個(gè)編輯組件 顯示列表中當(dāng)前被選中的文件 5 FileName屬性 存放了列表中當(dāng)前被選中的文件的文件名及路徑名 6 FileType屬性 決定了文件列表中顯示的文件的屬性類型 7 Mask屬性 用于設(shè)置文件列表中顯示的文件類型 8 ShowGlyphs屬性 用于設(shè)置文件是否在文件旁邊顯示文件圖標(biāo) 9 MultisSelect屬性 用于設(shè)置用戶是否可以一次選中多個(gè)文件 3 8 2DirectoryListBox組件用于顯示指定驅(qū)動(dòng)器下的目錄列表 該組件位于如圖3 38所示中第九個(gè)組件 DirectoryListBox組件的主要屬性 1 Directory屬性 用于設(shè)置當(dāng)前的文件目錄 2 DirLabel屬性 用于將目錄列表鏈接至一個(gè)lable組件 顯示列表中當(dāng)前被選中目錄 3 Drive屬性 用于設(shè)置當(dāng)前的驅(qū)動(dòng)器盤號 當(dāng)該屬性值改變時(shí) Drive屬性值將自動(dòng)改變?yōu)樾碌尿?qū)動(dòng)器下的當(dāng)前目錄 4 FileList屬性 用于將目錄列表鏈接至文件列表 當(dāng)目錄列表中的目錄改變時(shí) 文件列表會(huì)自動(dòng)進(jìn)行更新 3 8 3DriveComboBox組件用于顯示一可選驅(qū)動(dòng)器下拉列表 該組件位于如圖3 38所示中第十個(gè)組件 DriveComboBox組件主要的屬性 1 Dirlist屬性 用于將本組件鏈接至目錄列表 如驅(qū)動(dòng)器改變 目錄列表會(huì)自動(dòng)更新 2 Drive屬性 用于存放當(dāng)前的驅(qū)動(dòng)器盤號 3 TextCase屬性 用于決定驅(qū)動(dòng)器盤號使用大寫字母還是小寫字母 3 8 4FilterComboBox組件用于顯示一可選過濾器下拉列表 供用戶選擇 位于如圖3 38所示中第十一個(gè)組件 FilterComboBox組件的主要屬性如下 1 FileList屬性 用于將本組件鏈接至文件列表 如當(dāng)前的文件類型改變 文件列表會(huì)自動(dòng)進(jìn)行更新 2 Filer屬性 用于設(shè)置各種過濾文件的類型 3 Mask屬性 用于存放所選的過濾類型的對應(yīng) 3 9- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
19.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 湖北 理工學(xué)院 計(jì)算機(jī) 學(xué)院 09 級計(jì)科 Delphi 程序 教程
鏈接地址:http://www.3dchina-expo.com/p-6435560.html