Delphi教學培訓PPTDelphi教程(清華版)_第1頁
Delphi教學培訓PPTDelphi教程(清華版)_第2頁
Delphi教學培訓PPTDelphi教程(清華版)_第3頁
Delphi教學培訓PPTDelphi教程(清華版)_第4頁
Delphi教學培訓PPTDelphi教程(清華版)_第5頁
已閱讀5頁,還剩479頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、delphi教程教程 清華大學出版社清華大學出版社 課程介紹課程介紹 delphi是著名的borland公司開發(fā)的可 視化軟件開發(fā)環(huán)境,自1995年問世以 來,帶來了程序設計中的一場重大變 化。delphi作為第四代編程語言,具 有簡單、高效和功能強大等特點,這 些特點使得它為廣大程序開發(fā)者所青 睞。 第1章 delphi基礎知識 1.1 delphi簡介簡介 delphi作為一種可視化的編程環(huán)境,經(jīng) 歷了7代產(chǎn)品的發(fā)展歷程: borland公司在1995年推出了基于 windows平臺的delphi 1。 delphi 2新增加的主要功能是對32位編 程的支持。還增加了如數(shù)據(jù)模塊等多種高 效

2、的數(shù)據(jù)重用功能。 delphi 3對其組件庫進行增強 ,完全支持 activex組件及其創(chuàng)建 。 delphi 4提供了object pascal語言的擴展 ,但 系統(tǒng)穩(wěn)定性較差 。 1999年推出delphi 5增強了數(shù)據(jù)庫的功能 2001年6月推出delphi 6 ,增加了大量的新 組件,使組件數(shù)目達350多個,以滿足網(wǎng)絡開 發(fā)的需要。 2002年8月推出 delphi 7 ,在集成開發(fā)環(huán)境 ide、web、數(shù)據(jù)庫、編譯器、模型生成支持 及組件庫等很多方面進行了改進 1.2 delphi7 ide 1.2.1 認識集成開發(fā)環(huán)境認識集成開發(fā)環(huán)境 delphi 7的ide主要包括7個部分:主窗

3、口、 組件面板、工具欄、窗體設計器、代碼編輯 器、對象觀察器和代碼瀏覽器。 圖1-1 delphi 7的 ide 1.主窗口主窗口 主要包括:菜單欄、工具欄、標題欄和組件 面板 delphi7的主菜單包括11個下拉菜單 注意:工具欄上的按鈕都提供了描述該按 鈕功能的tooltip,除了組件面板ide有6個獨 立的工具欄 ide工具欄的定制功能并不僅限于配置需 要顯示的按鈕,還可以調整工具欄、組件面 板和菜單欄在主窗口中的位置。 圖1-2 delphi 7的主窗圖口 delphi7組件板包含了350多個組件,是 delphi可視化編程的核心部件,它由27個選 項卡組成 組件面板如圖1-4所示 包

4、含了ide中安裝的所有的vcl組件和 activex組件 將組件板上的組件添加到窗體上的三種方法: 單擊組件板上的所需組件的按鈕,然后在窗 體適當位置拖動鼠標畫出組件,即可將組件 添加到窗體的指定位置上 圖1-4 delphi 7的組件面板 雙擊組件板上的所需組件的按鈕,即可將組 件添加到窗體的中心位置 按下鍵不放,單擊組件板上的所需組 件的按鈕,所選組件出現(xiàn)藍色邊框,同時對 象選擇按鈕將彈起 組件板中的組件分為可視組件與非可視組件 2.窗體設計器窗體設計器 在創(chuàng)建新的項目時,窗體設計器是一個空 白的窗口??梢杂檬髽苏{整組件在窗體設計 器上的位置和大小,還可以用對象觀察器和 代碼編輯器來控制組

5、件的外觀和行為 。 3.對象觀察器對象觀察器 利用對象觀察器,可以修改窗體或組件的 屬性,或者使它們能夠響應不同的事件 。 屬性(property)是一些數(shù)據(jù),如高度、顏色、 字體等,它們決定了組件在屏幕上的外觀。 事件(event)則是一種消息處理機制,它能夠 捕捉某種情況的發(fā)生并做出反應,像鼠標單 擊和窗口打開就是兩種典型的事件。 對象觀察器類包括properties選項卡和 events選項卡 下圖兩個對象觀察器,左邊一個按種類排序, 右邊一個按名字排序。 注意:幫助系統(tǒng)是和對象觀察器緊密結合在一 起的,想了解某個屬性或事件的幫助信息, 只要在該屬性或事件上按下f1 鍵 圖1-5 按種類

6、或名稱查看object inspector 4.代碼編輯器代碼編輯器 代碼編輯器是輸入代碼來指定應用程序行 為的地方,也是delphi根據(jù)應用程序中的組 件自動生成代碼的地方。當向應用程序中加 入一個窗體時,delphi會自動創(chuàng)建一個新的 單元,并添加到代碼編輯器頂部的標簽中。 5.代碼瀏覽器代碼瀏覽器 以一種樹狀視圖方式顯示列在代碼編輯器 中的單元文件。通過它,可以方便地在單元 文件中漫游或在單元文件中加入新的元素或 者把已有的文件改名。要記住代碼瀏覽器和 代碼編輯器有一對一的關系。 6.源代碼生成器源代碼生成器 當對窗體設計器中可視化組件進行操作時 delphi ide自動生成object

7、 pascal源代碼。 當用【file】|【new】|【application】菜單 命令創(chuàng)建一個新的項目時,將看到屏幕上出 現(xiàn)一個空白的窗體設計器,同時,代碼編輯 器中會自動出現(xiàn)一些代碼,如下所示: unit unit1; interface uses windows, messages, sysutils, variants, classes, graphics, controls, forms,dialogs; type tform1 = class(tform) private private declarations public public declarations end; v

8、ar form1: tform1; implementation $r *.dfm end. 從上述源代碼清單中可以看出,窗體對象 是從tform繼承下來的。 下面這一行非常重要: $r*.dfm pascal語言中的$r指令用于加載一個外部 資源文件。*.dfm文件中包含在窗體設計器中 創(chuàng)建的表單的二進制代碼。其中的“*” 表示 與當前單元文件同名的文件。 項目文件的擴展名是.dpr 可以選擇主菜單下的【project】|【view source】命令把項目源文件調入代碼編輯器。 如下用程序示例的項目文件: program project1; uses forms, unit1 in uni

9、t1.pas form1; $r *.res begin application.initialize; application.createform(tform1, form1); application.run; end. 當添加表單和單元時將出現(xiàn)在uses子句中 1.2.2 基于組件的編程思想基于組件的編程思想 .早期dos操作系統(tǒng)和c語言主導的時代, “數(shù)據(jù)結構+算法”成為構建軟件惟一方式 .c+語言和面向對象技術 . 20世紀90年代中期流行一種嶄新的程 序設計概念 :軟件可以由可互換的組件構成 組件是一種通過公開的屬性、方法、事 件,是可以重復使用的一種經(jīng)過編譯的二進制 文件,其文

10、件名可以是.ocx或者是.dll,如命 令按鈕、復選框、單選框、滾動條等都是常見 的組件。 1.2.3 delphi 7的特點的特點 delphi最顯著的特點就是高效性和穩(wěn)定性, 主要體現(xiàn)在以下4個方面: 可視化開發(fā)環(huán)境的性能。 編譯器的速度和已編譯代碼的效率。 編程語言的功能及其復雜性。 豐富的vcl 1.可視化開發(fā)環(huán)境可視化開發(fā)環(huán)境 可視化開發(fā)環(huán)境通??煞譃?個部分:編輯 器、調試窗口和窗體設計器。 2.編譯器的速度和已編譯代碼的效率編譯器的速度和已編譯代碼的效率 pascal編譯器最著名特點就是速度快,而 delphi正是建立在這種編譯器基礎之上的。 增加了鏈接和各種緩存策略,尤其是在

11、visual c+和c+ builder中。 3.編程語言的功能及其復雜性編程語言的功能及其復雜性 匯編是一種最有力的語言,即便是用匯編 開發(fā)最簡單的應用程序,難度也非常大,還 可能一無所獲。 4.豐富的豐富的vcl vcl是delphi7最重要的組成部分,包含不 同種類的組件 。 1.2.4 幫助的使用幫助的使用 (1)當遇到問題時,可以嘗試按下【f1】鍵, 一般情況下delphi都會準確地定位。 (2)如果需要瀏覽系統(tǒng)的一些幫助內容,比 如說對象pascal語言,可以通過菜單【help】 |【delphi help】命令打開【幫助主題: delphi help】對話框,在目錄標簽中展開相

12、關條目,進行系統(tǒng)學習。 3)當使用windows api函數(shù)時,通過【help】 |【delphi help】打開的【幫助主題:delphi help】對話框中,在【索引】選項卡中可能 查不到有關的幫助信息,有兩種解決辦法: 一種辦法是在代碼編輯器中輸入windows api函數(shù)的名稱,然后將光標定位到該名稱中, 接著按下【f1】鍵。 另一種辦法是通過【help】|【windows sdk】打開幫助文件win32.hlp,在【索引】 選項卡中查找。 (4)幫助文件打開時,要瀏覽相關內容,可以 按下工具欄中的【】或【】按鈕,通常 這樣是在同一個主題中瀏覽。通過一些see also熱鏈接,也可以查

13、看相關的幫助內容。 (5)在組件欄上右擊,通過快捷菜單的help命 令,可以查看有關組件的幫助內容。 (6)在delphi集成開發(fā)環(huán)境中,通過【help】 |【customize】命令可以打開【open help】 窗口,在該窗口中可以對幫助文件進行管理, 其中包括幫助內容、幫助索引、鏈接位置和 幫助工程文件等的管理。 1.3 簡單簡單delphi程序設計程序設計 delphi 7編寫應用程序包括新建應用程序、 設置窗體屬性、添加組件、設置組件屬性、 添加事件、編寫事件響應代碼、編譯運行等 1.新建應用程序新建應用程序 啟動delphi 7,選擇【file】|【new】| 【applicati

14、on】菜單,新建一個應用程序。 2.設置窗體屬性設置窗體屬性 單擊【object inspector】,在對象觀察器中 打開【properties】選項卡,單擊caption屬 性右側,輸入窗體的新標題“窗口”。 3.向窗體中添加組件向窗體中添加組件 單擊standard選項卡上的button組件,將鼠 標指向窗體中的任意位置(標題欄除外), 單擊鼠標,即可把button1組件放入窗體中。 或者直接雙擊組件面板上的button組件,也 可以在窗體中添加一個button1組件。 4.設置組件屬性設置組件屬性 選中組件,單擊object inspector的標題欄以 激活對象觀察器,并選擇prop

15、erties選項卡。 在對象觀察器中單擊要設置的屬性,進行屬 性設置。 5.添加事件添加事件 選中要添加事件的組件,激活對象觀察器, 并選擇event選項卡,在對象觀察器中單擊要 添加的事件,在其右側輸入事件的響應函數(shù) 名稱,然后回車即可。 6.編寫事件響應代碼編寫事件響應代碼 選定要編寫事件響應代碼的組件 ,打開 event選項卡,雙擊要編寫響應代碼的事件右 側的空白部分,進入代碼編輯窗口。 procedure tform1.button1click(sender: tobject); /單擊放大按鈕,窗口將放大 begin form1.height:=form1.height+10; /窗

16、口高度10 form1.width:=form1.width+10; /窗口寬度10 end; procedure tform1.button2click(sender: tobject); /單擊縮小按鈕,窗口將縮小單擊縮小按鈕,窗口將縮小 begin form1.height:=form1.height-10; /窗口高度減窗口高度減10 form1.width:=form1.width-10; /窗口寬度減10 end; procedure tform1.button3click(sender: tobject); /關閉窗口 begin close; /退出 end; 7.編譯運行程序

17、編譯運行程序 圖1-6 例程運行界面 1.4 delphi上機步驟上機步驟 1.啟動程序啟動程序 2.添加組件添加組件 在窗體設計器中添加如圖1-7所示的各組件。 3.設置組件屬性設置組件屬性 4.編寫代碼編寫代碼 組件屬性設置完成后,編寫如下代碼: 圖1-7 窗體布局圖 procedure tform1.edit1change(sender: tobject); /編輯 框1中的內容改變時的事件 var stringlength:integer; /定義整型變量,記錄編輯框1中字符 的個數(shù) begin stringlength:=edit1.gettextlen; /得到編輯框1中字符個數(shù)

18、edit2.text:=inttostr(stringlength); /編輯框2顯示編輯框1中 字符個數(shù) end; procedure tform1.button1click(sender: tobject); / 關閉窗口 begin close; end; 5.保存工程保存工程 保存工程分為保存單元文件和保存項目文件 兩步。 第一步是保存單元文件,單擊工具欄上的 save按鈕,將打開save unit1 as窗口,默認 的單元文件名是“unit1.pas”,以“.pas”為 擴展名,單元文件名根據(jù)需要可以另取 。 第二步是保存項目文件,單擊工具欄上save project1 as按鈕,默

19、認的項目文件名是 “project1.dpr”,工程文件名根據(jù)需要可以 另取以“.dpr”為擴展名 6.運行工程運行工程 保存工程結束后即可運行工程 小結小結 在本章中,主要介紹了delphi的產(chǎn)生和發(fā) 展,delphi的特點,使用delphi進行程序設計 的一些基礎知識。本章的重點是delphi的開 發(fā)環(huán)境和開發(fā)方法,通過實例介紹了delphi 的程序設計和上機操作的一般步驟。 圖1-10 工程運行界面圖 第第2章章 delphi語法基礎語法基礎 2.1 保留字與標識符保留字與標識符 2.1.1 標識符標識符 標識符是object pascal語言中各種成分 的名稱,這些成分包括變量(var

20、)、常量 ( c o n s t ) 、 類 型 ( t y p e ) 、 過 程 (procedure)、函數(shù)(function)、方法 (method)、單元(unit)等。 標識符可以分為三類:標準標識符、自定 義標識符和限定標識符。 1標準標識符 (1)標準常量,如false、maxint、true等; (2)標準類型,如boolean、char、real等; (3)標準函數(shù),如sin、cos、abs、arctan 等; (4)標準過程,如dispose、get、new、pack、 put等; (5)標準文件,如input、output等。 2自定義標識符 程序員根據(jù)程序設計的需要,

21、自己定義的 常量、變量、類型、函數(shù)、過程等所取的名 字。自定義標識符可以由任意長的一個不帶 空格的字符串組成,包括字母az 、az 、 數(shù)字09 和下劃線“_”等。 定義標識符需要遵循以下規(guī)則: (1)標識符不區(qū)分大小寫; (2)標識符只能以字母或下劃線開頭,不能以 數(shù)字開頭; (3)標識符可任意長度,但只有前225個字符 有效; (4)標識符中間不允許有空格; (5)不允許使用object pascal語言的保留字作 為標識符。 3限定標識符 在delphi程序中可引用多個單元,而各個 單元中全局變量、函數(shù)、過程等可能會同名, 在引用時需用限定標識符來區(qū)分它們: var y:real; y:

22、=system.cos(pi); 其中system稱為限定符 ,而system.cos 稱為限定標識符。 2.1.2 保留字保留字 保留字由系統(tǒng)規(guī)定具有特定意義,不能 被重新定義或作他用,定義了65個保留字 。 注意: 1單詞at和on具有特殊含義,不要與它們同 名。 2保留字和object pascal一樣不區(qū)分大小 寫。 3delphi集成開發(fā)環(huán)境的代碼編輯器中,黑 體顯示保留字和指令字,定義時不要與這些 黑體字一樣。 object pascal的保留字 and array as asm begin case class const constructor destructor dispi

23、nterface div do downto else end except exports file finalization finally for function goto if implementation in inherited initialization inline interface is label library mod nil not object of or out packed procedure program property raise record repeat resourcestring set shl shr string then threadv

24、ar to try type unit until uses var while with xor 2.1.3 指令符指令符 指令字只在特殊的程序位置、或當上下 文關聯(lián)時有意義的程序區(qū)段有自己特殊的意 義,而在其他場合,用戶可對其重新定義, 即可將其定義為標識符,object pascal不會 指示出錯,當用戶重新定義這些指令字后, 在作用域內它們就失去了原來的意義了。 object pascal中規(guī)定的指令符有39個 說明:指令符private、protected、public、 published和automated在定義對象類型時也 作為保留字,而在其他場合則作為指令符。 2.1.4 注

25、釋注釋 注釋可增加程序的可讀性和可維護性。 object pascal語言中注釋有三種形式: 1組合符號“”與“”的成對使用表示它們 之間的內容為注釋部分。 2組合符號“( *”與“* )”的成對使用表示它 們之間的內容為注釋部分。 3符號“/ ”的單個使用表示所在行的該符 號之后的內容為注釋。 注意: 1注釋符“”與“”、“( *”與“* )”在使用時 不支持注釋的嵌套,而且必須成對使用。 2對于單行和少量幾行注釋使用符號“/ ”, 對于大塊注釋使用“”和“”或“( *”和“* )”。 3有時可利用注釋在代碼中形成一個醒目標 志。 4在注釋符“”或“( *”后緊接著是一個美元 符號“$”時,

26、表示該句是一個編譯器指令, 它與普通的注釋不同,通常用來對編譯過程 進行設置。 2.2 數(shù)據(jù)類型數(shù)據(jù)類型 描述客觀事物的數(shù)、字符以及所有能輸入 到計算機中并被計算機程序加工處理的符號 的集合稱為數(shù)據(jù)。 數(shù)據(jù)類型可以分為標準數(shù)據(jù)類型及高級數(shù) 據(jù)類型等,還可以通過數(shù)據(jù)類型聲明語句在 預定義數(shù)據(jù)類型的基礎上定義新數(shù)據(jù)類型。 說明: 1標準數(shù)據(jù)類型屬于object pascal內部約 定的數(shù)據(jù)類型,無需定義就可以直接使用。 2高級數(shù)據(jù)類型體現(xiàn)了特殊的數(shù)據(jù)結構,在 使用之前必須由用戶自己定義。 3數(shù)據(jù)類型中整型、字符型、布爾型、枚舉 型和子界型被稱為順序類型,其取值是一個 有序集合,每一個可能取值都與順

27、序有關。 2.2.1 數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù) 數(shù)值型數(shù)據(jù)可分為整數(shù)類型和實數(shù)類型。 1.整數(shù)類型 整數(shù)類型是存儲整數(shù)數(shù)據(jù)的類型 ,分為基本 整形和一般整形。 基本整形:短整型 、小整型 、長整型 、64位 整型 、字節(jié)型 、字型 、長字型 一般整形:整型 、序數(shù)型 注意:盡量使用一般整型integer和cardinal, 可以最大限度發(fā)揮cpu和操作系統(tǒng)的性能。 2.實數(shù)類型 實數(shù)類型是存儲實數(shù)數(shù)據(jù)的類型 ,分為基 本實型和一般實型。 基本實型:單精度實型 、擴展型 、雙精度實 型 、貨幣型 一般實型:實型 注意:real 類型與double 類型完全等價。 currency類型至少有4位有效的

28、小數(shù)位。 2.2.2 字符型數(shù)據(jù)字符型數(shù)據(jù) object pascal中的字符型數(shù)據(jù)可以分為字 符型和字符串型2類7種。 1.字符類型 object pascal包括3種形式的字符型數(shù)據(jù) 類型類型 名稱名稱 字節(jié)數(shù)字節(jié)數(shù) 取值范圍取值范圍 ansi字符型 ansichar 擴展ansi字符集 寬字符型 widechar unicode字符集 字符型 char () 擴展ansi字符集 說明: (1)前2種為基本字符類型后一種為一般類型。 (2)char與ansichar完全等價,但char常用。 2.字符串類型 字符串類型是存儲字符串數(shù)據(jù)的類型 , object pascal包括了4種形式的字

29、符串型數(shù) 據(jù) 類型類型 名稱名稱 最大長度最大長度 所需內存空間所需內存空間 短字符串型 shortstring 255個字符 2256b 長字符串型 ansistring 231個字符 42gb 寬字符串型 widestring 230個字符 42gb 字符串型 string 231個字符 42gb 說明: ()ansistring類型的定義是動態(tài)分配的,內容 由ansichar類型的字符組成,長度僅受可用 內存空間的限制,以空字符nul作為結尾。 ()string字符串類型,既可以是shortstring類 型也可以是ansistring類型,默認定義是 ansistring類型。 2.2

30、.3 布爾型數(shù)據(jù)布爾型數(shù)據(jù) 布爾型數(shù)據(jù)用于關系運算和條件語句的 邏輯運算,包括4種形式的布爾型數(shù)據(jù)。 說明: (1)后3種類型是為了兼容其他語言而設置的, 編程時應盡量使用boolean類型。 (2)boolean取值為false和true兩個符號常量。 類型類型 名稱名稱 字節(jié)數(shù)字節(jié)數(shù) 取值取值 布爾型 boolean 只能為0(false)或1(true) 字節(jié)布爾型 bytebool 0(false)或非0(true) 寬布爾型 wordbool 0(false)或非0(true) 長布爾型 longbool 0(false)或非0(true) 2.3 常量與變量常量與變量 2.3.1

31、常量常量 常量即在程序的執(zhí)行過程中其值不能改變 的量。 常量有兩種,一種是常量值本身,也稱為 直接常量;另一種是要用聲明定義的標識符 表示的常量,也稱為聲明常量。聲明常量又 可以分為符號常量和類型常量。 1.直接常量 直接常量是指在程序中直接引用的常數(shù), 如整型常數(shù)、實型常數(shù)、字符型常數(shù)、字符 串型常數(shù)和布爾型常數(shù)。 2.聲明常量 (1)符號常量 在程序中,某一個常數(shù)反復多次出現(xiàn),可 以定義一個標識符來代表該常數(shù),這個標識 符就是符號常量,其值在定義后不會改變。 也稱純常量。定義符號常量使用常量說明語 句,其語法格式為: const =; =; 其中const是保留字,表示常量定義段開始 。

32、注意: 保留字const可單獨一行也可與常量一行。 不能在程序中給常量另行賦值,否則將導致 語法錯誤。 delphi由常量值判斷常量名屬于哪種類型。 (2)類型常量 類型常量用于保存數(shù)組、記錄、過程以及 指針等類型的值,不能出現(xiàn)在常量表達式中。 在默認的編譯器狀態(tài)下,類型常量的值可改 變,但當在程序中加入編譯命令$j-時,則 類型常量的值在運行期就無法改變。 聲明類型常量的語法規(guī)則為: const :=; 其中類型是除文件型和可變型的所有類型, 常量值可以是和類型相應的常量表達式。 2.3.2 變量變量 1.變量的聲明 變量在單元、函數(shù)或過程的聲明部分進行 聲明,聲明的位置決定了變量的作用域。

33、聲 明包括兩部分:變量名和它所屬的類型,變 量聲明的語法格式為: var :; :; 當多個變量具有相同數(shù)據(jù)類型時,格式如下: var ,:; 其中,var是保留字,表示變量聲明段的開始; 同類型的可超過一個,間 用“,”分隔;可以是基本數(shù)據(jù)類型 或是由用戶定義的高級數(shù)據(jù)類型; 2.變量的使用 一旦聲明了一個變量應及時對它進行初始化, 最簡單方法就是給變量賦值,在表達式中使 用變量。 2.4 運算符與表達式運算符與表達式 按照操作數(shù)數(shù)目的多少來分,運算符分為 下面兩類:單目運算符和雙目運算符。單目 運算符一般放在操作對象的前面,雙目運算 符都放在兩個操作數(shù)之間。 表達式是表示某個求值規(guī)則的運算

34、公式, 由運算符和配對的圓括號將常量、變量、函 數(shù)、對象等操作數(shù)以合理的形式組合而成。 2.4.1 算術運算符與算術表達式算術運算符與算術表達式 1.算術運算符 算術運算符對浮點數(shù)和整數(shù)進行加、減、 乘、除和取模運算,取正“+”和取負“-”是單 目運算符,其他均為雙目運算符。 說明: (1)+、-、*運算中,參加運算的數(shù)可以是整型和 實型,結果自動向精度高的類型轉化。 (2)參加除法運算“/”,結果都是實型的商。 (3)參加整數(shù)除法“div”和求余運算“mod”的數(shù) 必須是整型,結果也是整型數(shù),符號與被除 數(shù)的符號相同,小數(shù)部分被舍去。 (4)在表達式a/b、a div b和a mod b中,

35、如果b 的值為0,將會觸發(fā)一個錯誤。 2.算術運算符的優(yōu)先級 同級運算自左至右,如果含有括號,則先 計算括號內表達式的值。 3.算術表達式 將數(shù)學式改寫為算術表達式,考慮三個問 題:一是語法,二是優(yōu)先級,三是類型。 優(yōu)先順序優(yōu)先順序 運算符運算符 +、-(取正、取負) *、/(法、除法) div、mod(整除、求余) +、(加法、減法) 說明: (1)數(shù)學式中省略的運算符和表示函數(shù)參數(shù)的括 號必須添加上去 (2)必須注意優(yōu)先級的處理 ,恰當利用標準函 數(shù) ,注意數(shù)據(jù)類型。 2.4.2 邏輯運算符與布爾表達式邏輯運算符與布爾表達式 邏輯運算符可分為布爾運算符、位運算符 和關系運算符。 1.布爾運

36、算符 只能對兩個布爾型操作數(shù)進行運算,結果 仍為布爾型,true或false。 其中,not是求“非”,為一元運算符 ; and是求“與”,or是求“或”,xor是求 “異或”,均為二元運算符 。 2.位運算符 運算符運算符 操作舉例操作舉例操作數(shù)類型操作數(shù)類型 結果類型結果類型 功能說明功能說明 not not x integer integer 即按二進制形式將每位求反 and a and b integer integer 將兩者相對應的位進行and運算 or a or b integer integer 將兩者相對應的位進行or運算 xor a xor b integer intege

37、r 將兩者相對應的位進行取xor運 算,兩者不同時結果為1 shl a shl b integer integer 將a的二進制值向左移動b位,左 移一位相當于乘2 shr a shr b integer integer 將a的二進制向右移動b位,右移 一位相當于除2 注意:右移操作時原值的低位丟失,高位補0; 左移操作時原值的高位丟失,低位補0。 3.關系運算符 關系符關系符 操作操作 操作數(shù)類型操作數(shù)類型 結果類型結果類型 = 等于 簡單類型,字符串或可變類型,類,類引用, 指針,集合類型 boolean 不等于 簡單類型,字符串或可變類型,類,類引用, 指針,集合類型 boolean 大

38、于 簡單類型,字符串或可變類型 boolean = 大于等于 簡單類型,字符串或可變類型 boolean 4.布爾表達式 布爾表達式由布爾運算符和布爾類型的操 作數(shù)所組成,包括關系運算表達式和運算結 果為布爾類型的函數(shù),如odd(x)、 fileexists(x)、等。但位運算符的結果是整數(shù) 類型,不能直接作為布爾操作數(shù)。 2.4.3 字符串運算符 連接運算符“+”主要用于連接兩個或更多 的字符串。最簡單的字符串表達式是字符常 量、字符串常量、字符變量、字符串變量或 字符函數(shù)的引用。字符串表達式格式為: +| 當兩個字符串用連接運算符連接起來后, 第二個字符串直接添加到第一個字符串的尾 部,結

39、果是包含兩個源字符串全部內容的新 字符串。如果要把多個字符串連接起來,每 兩個字符串之間都要用“+”號分隔。 2.4.4 運算符的優(yōu)先級 優(yōu)先順序優(yōu)先順序 運算符運算符 分類描述分類描述 1(取地址),not,- 一元運算符 2*,/,div,mod,and,shl,shr 乘除及類型強制轉換運算符 3+,or,xor 加減運算符 4=, =,in,is 關系、集合成員及類型比較運算符 2.5常用系統(tǒng)函數(shù)與過程常用系統(tǒng)函數(shù)與過程 2.5.1 數(shù)值運算函數(shù) delphi的數(shù)值運算函數(shù)包含了常用的數(shù)學 函數(shù)(如三角函數(shù)、對數(shù)函數(shù)等)和適合計 算機數(shù)據(jù)處理的其他函數(shù)(如求數(shù)組中的最 大值、求三角形的

40、斜邊長等)。 2.5.2 字符處理函數(shù) 對字符的處理主要包括:大小寫轉換、比 較先后順序、合并、查找、截取、插入、求 長度以及類型轉換等。 2.5.3 日期時間函數(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ù),每一個都有一個后

41、繼值。 2.順序函數(shù) 2.6語句語句 2.6.1 語句的基本概念語句的基本概念 按執(zhí)行時間可分為:聲明語句和可執(zhí)行語句。 順序函數(shù)順序函數(shù) 引用形式引用形式 函數(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); 返回順

42、序型數(shù)據(jù)x取值集合中的最末一個值(序數(shù)最 大),它還可以返回數(shù)組的最末一個元素 聲明語句包括單元說明語句、類型說明語 句、變量說明語句、過程說明語句、函數(shù)說 明語句和程序區(qū)段標識語句等。 可執(zhí)行語句包括賦值語句、運行控制語句 和結構控制語句等。 按語句的描述形式,可分為簡單語句、結 構語句和復合語句等。 簡單語句只含有一個語句定義符或特殊 標志;結構語句往往含有多于一個的語句動 詞;復合語句則是由begin和end括起來的若 干個簡單語句、結構語句和復合語句,允許 復合語句多層嵌套,或為空,也就是在begin 和end之間沒有其他語句。 2.6.2 常見聲明語句常見聲明語句 1.標號聲明語句

43、標號聲明語句即用一個整型數(shù)來表示程序的 某個執(zhí)行語句,一行標號聲明語句可以同時 聲明幾個標號,其用法如下所示: label aa,ab; var i:integer; begin /語句 if(i=0) then goto aa; /語句 aa:begin /語句 end; end; 2.類型聲明語句 在object pascal中,所有的變量必須是某種 特定的數(shù)據(jù)類型,類型決定了它所能包含的 數(shù)值和可進行的操作,用類型聲明語句可以 定義新的數(shù)據(jù)類型。例如: type tmydim:array1.10,1.5 of double; 3.過程聲明語句 過程可以被看成一段小程序,用來實現(xiàn)某種 特定

44、的目標,在完整的程序中它被當作一個 語句來執(zhí)行。在建立過程之前應先聲明。 procedure numstring(n:integr;var s:string); 4.函數(shù)聲明語句 函數(shù)與過程相似,主要區(qū)別在于函數(shù)必須有 返回值,函數(shù)的聲明參見下面的語句,其中, 最后的real表示函數(shù)的返回數(shù)據(jù)類型。 function power(x:real;y:integer):real; 2.6.3 賦值語句和程序的順序結構賦值語句和程序的順序結構 1.賦值語句 賦值語句的語法格式為: :=; 2.類型兼容 類型兼容是指數(shù)據(jù)類型不完全相同的量之間 能進行的運算和賦值操作。 3.利用賦值語句給對象屬性賦值

45、由于屬性總是歸屬于對象才有實際意義, 所以引用屬性時用符號“.”來連接表示其隸屬 關系。如組件editl的字體的顏色屬性表示為: editl.font.color。 4.順序結構 順序結構是最簡單、最常用的結構。在該 結構中,各操作塊按照出現(xiàn)的先后順序依次 執(zhí)行,不產(chǎn)生程序流程的其他轉移。它是任 何程序的主體結構,即使在選擇結構或循環(huán) 結構中,也常以順序結構作為其子結構。通 常由若干個賦值語句或其他簡單語句構成 。 2.6.4 條件語句和程序的選擇結構條件語句和程序的選擇結構 實現(xiàn)選擇結構的是if語句和case語句,這 兩種語句又稱條件語句,條件語句的功能就 是根據(jù)表達式的值有選擇地執(zhí)行一組語

46、句。 1.if語句 通過條件的布爾表達式值選擇執(zhí)行路徑。 if then else ; if語句分為簡單條件語句和復合條件語句。簡 單條件語句的中不包含其他的條件語 句 。如果在if語句格式中的或本身又是一個if語句,則稱為if語句的嵌套, 嵌套的if語句又被稱為復合條件語句。 2.case語句 case語句用來實現(xiàn)多分支選擇結構。 case語句描述了多路擇一的功能,它根據(jù) “選擇器表達式”的值決定執(zhí)行相應的語句。 case語句的語法格式為: case of :; :; else ; end; 說明:的值必須是順序類型 。 2.6.5 循環(huán)語句和程序的循環(huán)結構循環(huán)語句和程序的循環(huán)結構 從某處開

47、始有規(guī)律地反復執(zhí)行某一程序塊 的現(xiàn)象稱為“循環(huán)”,完成這一功能的程序 結構為“循環(huán)結構,”而其中重復執(zhí)行的程 序塊稱為“循環(huán)體”。循環(huán)結構語句有3種, 它們分別是:while 語句、repeat語句以及 for語句。 1.while語句 while語句屬于前測型循環(huán)結構。首先判斷 條件,根據(jù)條件決定是否執(zhí)行循環(huán),執(zhí)行循 環(huán)的最少次數(shù)為0。其語法格式為: while do ; 說明:可在(循環(huán)體)中任何位置break語句 來終止while 循環(huán),break 語句通常位于if語 句后。可在循環(huán)體中任何位置放置continue 語句,以便在整個循環(huán)體沒有執(zhí)行完就重新 判斷(條件),以決定是否開始新的

48、循環(huán)。 continue語句通常位于if 語句之后。 2.repeat語句 repeat語句屬于后測型循環(huán)結構,首先執(zhí) 行循環(huán)體,然后判斷條件,根據(jù)條件決定是 否繼續(xù)執(zhí)行循環(huán),執(zhí)行循環(huán)的最少次數(shù)為1。 repeat until ; 3.for語句 若知道要執(zhí)行多少次循環(huán)時,則使用for循 環(huán)結構。for循環(huán)使用一個循環(huán)變量,每重復 一次循環(huán)之后,循環(huán)變量的值就會自動增加 或者減少。for語句的語法格式為: for =to|downto do ; 說明:只能是順序類型,to表 示計數(shù)器遞增,downto表示計數(shù)器遞減。 4.循環(huán)的嵌套 循環(huán)語句的循環(huán)體中僅包含了簡單語句, 稱為單重循環(huán)。 如果在

49、循環(huán)體中又包含了另一個循環(huán)結構, 則稱為多重循環(huán),又稱為循環(huán)的嵌套。 在循環(huán)體中的嵌套稱為內循環(huán),外部的循 環(huán)稱為外循環(huán)。多重循環(huán)嵌套根據(jù)循環(huán)結構 嵌套層數(shù)可以分為二重循環(huán)、三重循環(huán)等。 5.循環(huán)的中斷 特殊情況下,需要中斷正在執(zhí)行的循環(huán), 可以使用break語句或continue語句。可以放 在循環(huán)體的任意位置,通常放在if語句之后。 執(zhí)行break語句的結果是:跳出整個循環(huán), 執(zhí)行之后的語句。 執(zhí)行continue語句的結果是:跳出本輪循 環(huán),然后判斷循環(huán)條件是否成立,再決定是 否開始新一輪的循環(huán)。 小結小結 本章主要介紹了object pascal的最基本的 語法,主要包括基本詞法、基本

50、數(shù)據(jù)類型、 常量與變量、運算符與表達式、常用函數(shù)與 過程、語句等。 第3章 常用組件 delphi 7.0的組件板上含有27個選項卡, 總共包括350多個組件,如圖所示 : 3.1 窗體窗體 3.1.1 form組件組件 窗體是應用程序的操作界面,是放置組件 的基礎。窗體由標題欄、工作區(qū)和邊界組成。 圖3-1 組件板和選項卡 運行界面圖 1. form的主要屬性 窗體組件(tform)在運行時表現(xiàn)為一 個窗體,窗體是一個容器構件,它可以包含 其他種類的構件,并協(xié)同完成應用程序的整 體功能。窗體由屬性、事件和方法組成。 (1)bordericons屬性 用來制定窗體標題欄上的圖標 (2)bord

51、erstyle屬性 borderstyle屬性用來設置窗體的外觀和邊框 (3)name屬性 name屬性唯一地標識對象,取值不能為空, 若工程中有多個窗體,名稱不能相同。 (4)caption屬性 用來指定窗體標題欄中說明文字,可以為空。 (5)font屬性 font屬性用來設置窗體中文字的字體、顏色 和字號等等,其中font.style屬性為集合型。 (6)formstyle屬性 formstyle屬性用來指定窗體的類型。 從窗體類型的角度來看,windows環(huán)境中的 應用程序可以分為以下三類。 第一類:多文檔界面(mdi)應用程序一般這 種應用程序具有一個父級窗口和多個子窗口, 可以同時打

52、開多個文檔,分別在多個子窗口 中顯示。 第二類:單文檔界面(sdi)應用程序這種 應用程序同時只能打開一個文檔。 第三類:對話框應用程序這種應用程序的 主界面基于一個對話框類型的窗體。 (7)icon屬性 icon屬性用來指定標題欄中顯示的圖標。 (8)position屬性 position屬性用來描述窗體大小和顯示位置。 (9)windowsstate屬性 windowsstate屬性來描述窗體顯示狀態(tài) 。 2.tform 的事件 窗體是一個可視化的組件,包括外部事件和 內部事件。 3.窗體的方法 一些常用方法(過程或函數(shù)) 有:create 、 close 、closequery 、rel

53、ease 、show 、 showmodal 、print 。 4窗體的創(chuàng)建 創(chuàng)建窗體的方法分為兩種:靜態(tài)創(chuàng)建和動 態(tài)創(chuàng)建。所謂靜態(tài)創(chuàng)建窗體是指再工程的編 輯、設計時創(chuàng)建新窗體;而動態(tài)創(chuàng)建窗體是 指在工程的運行時通過代碼生成窗體。 (1)靜態(tài)創(chuàng)建新窗體 通過集成開發(fā)環(huán)境中的【file】|【new】| 【application】菜單,創(chuàng)建一個應用程序, 此時自動生成一個窗體form1,再打開【file】 |【new】|【form】菜單生成一個窗體 form2。在form1中添加兩個button、1個 label組件,form2中添加1個label組件,即 可完成界面設計。 添加代碼: proce

54、dure tform1.button1click(sender: tobject); /創(chuàng)建按 鈕事件 begin /關鍵分析 form2.show; /調用show方法顯示form2窗體 end; procedure tform1.button2click(sender: tobject); begin form1.close; end; 程序分析:編譯上述工程時,系統(tǒng)會彈出出錯 提示信息,單擊“yes”按鈕,delphi將自動 在unit1單元中添加對unit2單元的引用。 (2)動態(tài)態(tài)創(chuàng)建新窗體 在需要某個窗體時,臨時創(chuàng)建它,使用后 將其立即釋放,這種稱為窗體的動態(tài)創(chuàng)建。 3.1.2彈出

55、對話框窗體彈出對話框窗體 delphi提供內部對話框有兩種。 第一種:信息輸出對話框showmessage過 程、showmessagefmt過程、messagedlg 函數(shù)、messagedlgpos函數(shù)、 createmessagedialog函數(shù)。 第二種:信息輸入對話框inputbox函數(shù)、 inputquery函數(shù)。 1showmessage過程 其語法格式為:showmessage(); 2showmessagefmt過程的語法格式為: showmessagefmt(,); 3messagedlg函數(shù)函數(shù) 其語法格式為:其語法格式為: =messagedlg(,helpctx);

56、4messagedlgpos函數(shù) 其語法格式為: =messagedlgpos(,helpctx,x,y); 可以指定對話框的顯示位置坐標:x,y。 5creatmessagedialog函數(shù) 其語法格式為: =creatmessagedialog (,); 6inputbox函數(shù)函數(shù) 其語法格為:其語法格為: =inputbox (,); 7inputquery函數(shù) 其語法格式為: =inputquery (,); 3.2 輸入顯示類組件輸入顯示類組件 3.2.1 edit組件 編輯框(edit)是一種通用組件,既可以 輸入文本,又可以顯示文本,編輯框組件位 于standard組件板中。 圖

57、3-7編輯框edit 運行界面圖 1edit的主要屬性 (1)autoselect屬性:設置編輯框得到焦點時, 文本是否自動被選中。 (2)autosize屬性:決定編輯框是否自動隨字體 的變化而改變大小。 (3)enable屬性 :用來設置編輯框是否能用。 (4)bordersytle屬性:設置編輯框邊框類型 。 (5)maxlength屬性:設所能接受最大字符數(shù)。 (6)passwordchar屬性:設置非#0字符時,將 代替用戶輸入的字符被顯示。 (7)readonly屬性:定編輯框中的文本是否可 以編輯。 (8)selstart屬性:被選中文本的開始位置,或 光標在文本中的位置。 (9

58、)seltext屬性:被選中的文本 。 (10)sellength屬性:被選中文本的長度。 (11)text屬性:編輯框中的文本內容。 (12)charcase屬性:控制編輯框中文本大小寫 3.2.2 label組件 標簽組件位于standard組件板中。 圖3-8 標簽label 運行界面圖 1label的主要屬性 (1)caption屬性:用來顯示標簽的文本。 (2)showaccelchar屬性 :決定是否將 begin memo1.lines.add(edit1.text); edit1.text:=; edit1.setfocus; end; 圖3-12 memo示例 運行界面圖 p

59、rocedure tform1.formactivate(sender: tobject); begin edit1.setfocus; end; 3.2.4 maskedit 組件組件 它限制用戶在所定義的位置輸入要求輸入 的符號。掩碼編輯框(maskedit)組件位于 additional附加組件板”中。 1maskedit常用屬性 圖3-13 memo示例 運行界面圖 ()editmask屬性 editmask屬性用來控制用戶輸入數(shù)據(jù)格 式的掩碼字符串,掩碼字符串editmask屬 性分為三個部分,用分號分隔。第一部分是 掩碼字符串的主要部分,它確定了數(shù)據(jù)的格 式;第二部分決定是否將掩碼

60、中的字符串作 為數(shù)據(jù)的一部分,0表示不作為數(shù)據(jù)的一部 分,1表示作為數(shù)據(jù)的一部分,它將影響屬 性;第三部分指出在掩碼中用來代表未輸入 數(shù)據(jù)的字符。 (2)edittext屬性:用來返回用戶輸入的數(shù)據(jù)。 3.3按鈕類組件按鈕類組件 3.3.1 button組件組件 button按鈕在delphi 7.0組件板standard選 項卡中 1.button的主要屬性 (1)caption屬性:來制定按鈕所顯示的文字。 (2)cancel屬性:決定改按鈕是否為取消按鈕 , 缺省值為false。 (3)default屬性:用來決定改按鈕是否為默認按 鈕,缺省值為false。 圖3-16 button基本

溫馨提示

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

評論

0/150

提交評論