本書采用“任務驅動”和“案例教學”的模式, 以突出實踐應用能力為出發點, 通過豐富實用的案例, 由淺入深系統化地介紹了如何使用Delphi進行Windows應用程序的開發。
隨著國家信息化發展戰略的貫徹和實施,信息化建設已經進入了多層次、全方位發展的新階段,各行各業對于專業型人才的需求也在迅速增加,如何加快培養高技能型專業人才便成了高等教育的一個核心問題。高等教育承擔著構建專業理論知識、強化課程體系的任務,它更注重的是學生對于理論知識的掌握程度、實際操作能力以及實際應用能力。為此,高等院校的系列教材既要反映該領域的新知識、新發展和新應用,又要符合高等院校對于專業人才的培養目標和課程體系的設置,目的是把學生培養成知識、能力與素質相結合的高技能應用型人才。
Delphi是基于Object Pascal語言的面向對象應用程序開發工具,具有強大的功能和豐富的組件。使用它可以快速高效地開發各種基于Windows的應用程序,尤其在數據庫應用程序開發方面它更是獨具優勢。鑒于此,為了使學生進一步理解面向對象程序設計的概念,掌握程序設計的核心思想,編者在多年一線教學研究以及實踐應用的基礎上總結經驗和技巧,編寫了此書。本書從基本概念入手,采用“任務驅動”和“案例教學”的模式,以程序設計為主線,對于每章的內容,首先明確學習目標與任務,然后從實例入手,讓讀者由淺入深,有針對性地學習Delphi程序設計的方法,力爭使讀者在掌握主要內容和核心技能的基礎上學以致用,較快地具備使用Delphi進行應用程序開發的能力。本書涵蓋內容較廣,形式新穎,案例豐富,實用性強,適合作為普通高等院校及高職高專院校計算機及相關專業的教學用書。
本書于2013年7月發行第1版,受到了廣大讀者的歡迎,先后多次重印。作為21世紀高等學校規劃教材,為適應當前形勢的需要,根據有關專家和廣大讀者的意見,結合編者多年來的教學和實踐應用體會,在第1版的基礎上做了大量的修訂和整合。面向新時期的讀者對象,在反復調研、討論并總結經驗的基礎上,保留了第1版的特色和風格,對其內容進行了調整和補充,增加了大量例題,力爭使內容更加充實,更具針對性、實踐性和趣味性。為突出重點,對原有較難的內容和章節做了適度刪減和更換,力爭使相關知識點及案例更貼近實際應用。修訂后的教材更加通俗易懂且文字精練、特色鮮明,使讀者不僅學會Delphi的編程知識,而且提高了使用Delphi程序設計方法解決實際問題的能力。
全書共分為16章,各章節的內容安排如下。
第1章Delphi程序設計概述: 主要介紹Delphi集成開發環境以及使用Delphi開發Windows應用程序的基本步驟。
第2章簡單的Delphi程序設計: 主要介紹面向對象編程中類與對象的相關概念以及窗體、標簽、按鈕和文本框組件的使用方法。
第3章Object Pascal編程基礎: 主要介紹Object Pascal語言的語法基礎。
第4章順序結構程序設計: 主要介紹順序結構中的賦值語句等基本語句以及順序結構中實現數據輸入輸出時常用的組件,如Memo、Image、Bitbtn、Richedit、GroupBox等。
第5章選擇結構程序設計: 主要介紹if語句和case語句的使用方法,以及選擇結構中常用的一些組件,如RadioButton、CheckBox等。
第6章循環結構程序設計: 主要介紹常用的幾種循環語句,如for語句和while語句,以及循環結構中常用的一些組件,如ListBox、ComboBox等。
第7章菜單的設計: 主要介紹主菜單以及快捷菜單的設計方法。
第8章工具欄與狀態欄的設計: 主要介紹工具欄和狀態欄的制作方法。
第9章對話框的使用: 主要介紹公共對話框和標準對話框的使用。
第10章數組與記錄類型: 主要介紹一維數組、二維數組以及記錄類型的使用。
第11章過程與函數: 主要介紹過程與函數的定義和調用,以及參數的相關概念。
第12章圖形圖像與多媒體程序設計: 主要介紹常用圖形的繪制方法以及播放音頻、動畫等多媒體文件的組件的使用方法。
第13章文件管理: 主要介紹常用的文件操作函數、文本文件以及有類型文件的讀取和寫入等操作。
第14章程序異常與調試: 主要介紹常見的程序錯誤與異常、程序調試以及異常處理方法。
第15章數據庫編程: 主要介紹BDE組件中Table和Query組件的使用、常用的ADO組件、數據控制組件以及數據報表的制作方法。
第16章Delphi程序設計綜合實訓: 通過記事本、簡易計算器以及學生信息管理系統三個綜合實例的開發,進一步展示使用Delphi進行應用程序開發的方法與步驟。
本書具有以下幾個特色。
1. 案例驅動與項目實訓
本書采用案例驅動法,以程序設計和組件的使用為主線,以實例為引導,將理論知識的介紹與案例的分析設計融為一體。對于每章的內容,首先明確本章的學習目標與任務,并指出本章的重點內容,以便學生有針對性地學習。其次,在介紹每一部分理論知識時都以有代表性、實用性和趣味性的實例作為引導,先給出實例的最終結果,然后在分析實例如何實現的基礎上,由淺入深地詳細介紹該實例的具體實現過程。最后,每章都配有經典實例和習題。在實例的分析與設計過程中將相關的理論知識點融于其中,使學生能夠在掌握相關理論概念和操作方法的基礎上學以致用,快速掌握程序設計方法。通過課后習題,鞏固學生對于理論知識的掌握程度,并通過上機操作培養學生獨立操作技能和編程能力,力爭以就業為導向,把學生培養成高技能應用型人才。此外,最后一章還有三個綜合實訓項目,以鍛煉并鞏固學生學以致用的能力。
2. 內容豐富,取舍得當,結構合理
本書對于Delphi面向對象程序設計的思想、Object Pascal語法基礎、基本組件的使用以及數據庫應用程序的開發等都做了詳細介紹。由于Delphi是可視化編程,比較直觀,因此讀者能夠快速入門。受課時等條件的限制,本書精心設計安排了各章節內容,緊緊圍繞“任務目標”和“技能應用”,重點介紹最基礎的知識點、最常用的組件的使用方法以及最貼近實際應用的內容,舍去了那些不常用的組件及內容的講解,力圖明確目標、突出重點,并給學生提供獨立思考和自我探索與創新的機會。本書概念準確,結構嚴謹,通俗易懂,案例豐富,任務明確,針對性強。從目標和案例入手,內容安排上難度適中,理論適度,側重應用,深入淺出,使學生在循序漸進的學習中進一步激發其學習Delphi程序設計的興趣和熱情。
3. 案例豐富,對于知識點的“注意”“思考”“能力拓展”等設計,形式新穎獨特
本書的每一個理論知識點都配有合適的案例,通過案例激發學生學習興趣。對于每一個案例,先給出其最終結果,然后再給出整個程序設計的分析過程、解題思路和代碼實現過程,最后還通過“注意”“思考”和“能力擴展”等小貼士對本部分知識點進行總結和擴展延伸,使其能夠舉一反三,真正將所學知識應用于實踐中。同時,本書將知識點融入相關案例中,透過案例對理論知識點進行鞏固學習和拓展,使讀者既掌握了必要的理論知識,又能靈活運用,真正掌握使用程序設計的方法解決實際應用中的各種問題的能力。
4. 配備教學資源
本書配備所有案例的源代碼及課后習題答案,以方便廣大讀者學習。所有實例均在Delphi7.0以及SQL Server 2005環境下編譯運行,隨書附贈的電子資源中包含了書中所有實例的源代碼。此外,本書凝聚了編者多年的教學和科研經驗,涵蓋內容較廣,形式新穎,案例豐富,實用性強,適合作為普通高等院校及高職高專院校計算機及相關專業的教學用書。同時,也可作為初學者學習Delphi程序設計的入門教材和參考用書。
本書由東北石油大學的劉苗苗、張永生、邢煜、王茱編著。全書的編寫分工為(按章節順序): 劉苗苗編寫第1~4、15、16章,張永生編寫第5~10章,邢煜編寫第11和第12章,王茱編寫第13和第14章。全書由劉苗苗負責策劃、組織編寫及統稿,由趙鳳芝負責審校。在此,對支持本書出版的清華大學出版社的相關工作人員表示誠摯的謝意。
由于編者水平有限,書中難免有疏漏和不足之處,敬請有關專家和廣大讀者批評指正。
編者
2017年7月
劉苗苗(1982-),博士,副教授,東北石油大學教師。工作至今,參與國家自然科學基金項目2項,主持并參與省部級課題9項,局級課題13項;在EI核心刊物上發表論文7篇,統計源6篇,國家論文十余篇;獲得6項省級及8項局級教學成果獎;參與編寫教材7部;發明專利4項。熟悉delphi、java、C#等編程工具,先后開發過高校教務、財務、學籍管理等系統;醫院電子檔案管理、資源共享交互平臺等多個應用軟件。
第1章Delphi程序設計概述
1.1程序設計簡介
1.2Delphi概述
1.3Delphi 7集成開發環境
1.3.1主窗口
1.3.2窗體窗口
1.3.3對象查看窗口
1.3.4代碼編輯窗口
1.4Delphi程序設計過程
1.4.1Delphi的編程步驟
1.4.2我的第一個Delphi小程序
1.4.3Delphi程序的基本組成
1.5一個簡單的Delphi例子
本章小結
習題1
第2章簡單的Delphi程序設計
2.1面向對象程序設計概述
2.1.1對象
2.1.2類
2.1.3類與對象的關系
2.1.4事件與響應
2.1.5事件代碼與方法代碼
2.2窗體與基本組件
2.2.1窗體Form
2.2.2標簽Label
2.2.3按鈕Button
2.2.4單行文本框Edit
2.2.5基本組件使用示例
2.3窗體中組件的操作
2.3.1窗體與組件的關系
2.3.2組件的特性
2.3.3對組件的操作
2.4窗體與基本組件綜合應用示例
本章小結
習題2
第3章Object Pascal編程基礎
3.1保留字與標識符
3.1.1保留字
3.1.2標識符
3.1.3注釋
3.2常用的數據類型
3.2.1數值型數據
3.2.2字符型數據
3.2.3布爾型數據
3.3數據類型的轉換
3.3.1類型轉換方式
3.3.2常用的類型轉換函數
3.4常量和變量
3.4.1常量
3.4.2變量
3.5運算符和表達式
3.5.1算術運算符與算術表達式
3.5.2字符串運算符與字符串表達式
3.6常用的內部函數
3.6.1數學函數
3.6.2字符串函數
3.6.3日期時間函數
3.6.4轉換函數
3.6.5格式化函數
3.7Object Pascal語句書寫規則
3.8基本組件及系統函數綜合應用
本章小結
習題3
第4章順序結構程序設計
4.1順序結構中的常用語句
4.1.1賦值語句
4.1.2復合語句
4.1.3with語句
4.1.4exit語句
4.2順序結構中常用的輸入輸出組件
4.2.1數字編輯框SpinEdit
4.2.2備注框Memo
4.2.3掩碼編輯框MaskEdit
4.2.4圖片框Image
4.2.5日期時間控件DateTimePicker
4.3修飾窗體的組件
4.3.1位圖按鈕Bitbtn
4.3.2快速按鈕SpeedButton
4.3.3復文本框RichEdit
4.3.4圖片列表ImageList
4.3.5成組框GroupBox
4.3.6面板Panel
4.3.7計時器Timer
4.4順序結構綜合應用示例
本章小結
習題4
第5章選擇結構程序設計
5.1條件表達式
5.1.1關系運算符與關系表達式
5.1.2邏輯運算符與邏輯表達式
5.2單條件選擇結構if語句
5.2.1簡單的if語句
5.2.2嵌套型if語句
5.3多條件選擇結構case語句
5.4單選按鈕RadioButton
5.4.1RadioButton常用屬性及事件
5.4.2RadioButton應用示例
5.5單選按鈕組RadioGroup
5.5.1RadioGroup常用屬性及事件
5.5.2RadioGroup應用示例
5.6復選框CheckBox
5.6.1CheckBox常用屬性及事件
5.6.2CheckBox應用示例
5.7滾動條ScrollBar
5.7.1ScrollBar常用屬性及事件
5.7.2ScrollBar應用示例
5.8選擇結構綜合應用示例
本章小結
習題5
第6章循環結構程序設計
6.1for型循環語句
6.1.1for語句的一般形式
6.1.2for語句的嵌套
6.1.3for語句使用規則
6.2while型循環語句
6.3repeat型循環語句
6.4轉向語句
6.4.1break強制退出循環
6.4.2continue強制縮短循環
6.5列表框ListBox
6.5.1ListBox常用屬性及操作
6.5.2ListBox應用示例
6.6復選列表框CheckListBox
6.6.1CheckListBox的操作
6.6.2CheckListBox應用示例
6.7組合框ComboBox
6.7.1ComboBox常用屬性
6.7.2ComboBox應用示例
6.8循環結構綜合應用示例
6.9結構化程序設計綜合應用示例
本章小結
習題6
第7章菜單的設計
7.1主菜單設計器MainMenu
7.1.1MainMenu的使用
7.1.2MenuItem常用屬性
7.1.3MainMenu應用示例
7.2快捷菜單設計器PopMenu
7.2.1PopMenu的使用
7.2.2菜單綜合設計示例
本章小結
習題7
第8章工具欄與狀態欄的設計
8.1工具欄
8.1.1工具欄的制作
8.1.2ToolBar常用屬性
8.1.3ToolBar應用示例
8.2狀態欄
8.2.1狀態欄的制作
8.2.2StatusBar常用屬性
8.2.3StatusBar應用示例
8.3菜單、工具欄、狀態欄綜合設計示例
本章小結
習題8
第9章對話框的使用
9.1公共對話框
9.1.1OpenDialog組件
9.1.2OpenPictureDialog組件
9.1.3SaveDialog組件
9.1.4FontDialog組件
9.1.5ColorDialog組件
9.2標準對話框
9.2.1消息框
9.2.2輸入框
9.3對話框綜合應用示例
本章小結
習題9
第10章數組與記錄類型
10.1一維數組
10.1.1一維數組的定義
10.1.2一維數組使用示例
10.2多維數組
10.2.1多維數組的定義
10.2.2二維數組使用示例
10.3數組綜合應用示例
10.4記錄類型
10.4.1記錄類型的聲明
10.4.2訪問記錄類型中的成員
10.5數組與記錄綜合應用
10.5.1數組與記錄的異同點
10.5.2數組與記錄綜合應用示例
本章小結
習題10
第11章過程與函數
11.1過程與函數的概念
11.2過程
11.2.1過程的定義與調用
11.2.2過程使用示例
11.3函數
11.3.1函數的定義與調用
11.3.2函數使用示例
11.4過程與函數中的參數
11.4.1參數的種類
11.4.2局部變量與全局變量
11.5過程與函數綜合應用示例
本章小結
習題11
第12章圖形圖像與多媒體程序設計
12.1形狀組件Shape
12.1.1Shape常用屬性
12.1.2Shape使用示例
12.2圖像組件Image
12.3畫布對象Canvas
12.3.1Canvas的常用屬性
12.3.2Canvas的常用方法
12.3.3Canvas使用示例
12.4常見圖形的繪制方法
12.4.1常用的圖形繪制函數
12.4.2圖形繪制函數使用示例
12.5多媒體程序的設計
12.5.1卡通組件Animate
12.5.2媒體播放器組件MediaPlayer
本章小結
習題12
第13章文件管理
13.1文件的概念
13.2常用的文件操作函數
13.2.1打開文件相關函數
13.2.2讀寫文件相關函數
13.2.3其他常用文件操作
13.2.4文件夾操作函數
13.3文本文件的操作
13.3.1文本文件操作步驟
13.3.2文本文件操作示例
13.4有類型文件的操作
13.4.1有類型文件的變量聲明
13.4.2有類型文件常用操作函數
13.4.3有類型文件操作步驟
13.4.4有類型文件操作示例
13.5文件操作應用示例
本章小結
習題13
第14章程序異常與調試
14.1程序錯誤與異常
14.1.1程序錯誤
14.1.2程序異常
14.2程序調試
14.2.1語法錯誤的調試
14.2.2邏輯錯誤的調試
14.3程序異常處理
14.3.1異常處理機制
14.3.2系統異常處理示例
14.3.3自定義異常處理示例
本章小結
習題14
第15章數據庫編程
15.1數據庫系統概述
15.1.1數據庫相關概念
15.1.2Delphi數據庫編程的優勢
15.1.3Delphi數據庫訪問機制
15.1.4Database Desktop的使用
15.2BDE組件
15.2.1數據編輯組件Table
15.2.2Table組件使用示例
15.2.3結構化查詢語言SQL
15.2.4數據查詢組件Query
15.2.5Query組件使用示例
15.3ADO組件
15.3.1數據庫連接組件ADOConnection
15.3.2數據編輯組件ADOTable
15.3.3數據查詢組件ADOQuery
15.4數據控制組件
15.4.1數據控制組件簡介
15.4.2數據源DataSource
15.4.3數據網格DBGrid
15.4.4數據導航器DBNavigator
15.4.5其他數據控制組件
15.5使用Table與數據控制組件編輯數據
15.6使用Query與數據控制組件查詢數據
15.7數據報表的制作
15.7.1報表組件簡介
15.7.2QuickRep組件
15.7.3QRBand組件
15.7.4文本信息報表輸出組件
15.7.5圖像信息報表輸出組件
15.7.6計算字段報表輸出組件
15.8報表綜合設計示例
15.8.1員工信息表的制作
15.8.2員工工作證的制作
本章小結
習題15
第16章Delph程序設計綜合實訓
16.1實訓1——記事本的制作
16.1.1實訓目的
16.1.2功能描述
16.1.3開發步驟
16.1.4功能代碼的實現
16.1.5小結
16.2實訓2——計算器的制作
16.2.1實訓目的
16.2.2功能描述
16.2.3開發步驟
16.2.4功能代碼的實現
16.2.5小結
16.3實訓3——學生信息管理系統
16.3.1實訓目標
16.3.2系統功能分析
16.3.3數據庫設計
16.3.4數據模塊的設計與實現
16.3.5主界面的設計與實現
16.3.6登錄模塊的設計與實現
16.3.7數據編輯模塊的設計與實現
16.3.8數據查詢模塊的設計與實現
16.3.9報表輸出窗體的設計與實現
16.3.10小結
參考文獻
第3章Object Pascal編程基礎
Delphi是一個基于Object Pascal語言的Windows應用程序開發工具,要想掌握如何使用Delphi進行程序的開發,首先就必須掌握Object Pascal語言的語法基礎。Object Pascal是一種面向對象的程序設計語言,它是在Pascal語言的基礎上發展起來的,既繼承了Pascal語言語法嚴謹、數據結構豐富等優點,同時融入了面向對象編程的語法要素。
本章主要介紹Object Pascal的語法基礎,例如什么是標識符、如何定義常量和變量、常用的數據類型、運算符和內部函數都有哪些,等等。語法是編程的基礎,所以一定要深刻理解并掌握本章中的一些語法定義和規則,為以后程序代碼的編寫奠定良好的基礎。
學習任務
了解Object Pascal中的保留字、標識符與注釋語句。
※掌握Object Pascal中3種基本的數據類型。
了解數據類型之間的轉換方式。
※掌握常量與變量的定義方法。
※掌握算術運算符與字符串運算符。
※掌握常用的內部函數。
牢記Object Pascal代碼書寫規則。
3.1保留字與標識符
3.1.1保留字
保留字是由系統規定的、具有特定意義的單詞,在編程時不能被重新定義或用作其他用途。Object Pascal語言中共規定了65個保留字,如表31所示。例如begin、end、if、for等都是保留字,它們都有各自的意義和作用,在應用程序中不允許對這些保留字進行修改。
表31Object Pascal的保留字
保留字
保留字
保留字
保留字
保留字
保留字
and
array
as
const
begin
destructor
uses
var
while
with
end
constructor
do
downto
class
else
case
procedure
續表
保留字
保留字
保留字
保留字
保留字
保留字
not
object
of
or
out
resourcestring
string
then
until
for
try
initialization
to
goto
if
is
type
inherited
except
program
property
record
repeat
threadvar
set
shl
shr
unit
interface
dispinterface
exports
file
in
finally
function
implementation
label
library
mod
nil
raise
finalization
asm
xor
div
inline
packed
注意: Object Pascal是不區分大小寫的。因此,像And、AND、and都被看作是相同的保留字。在Delphi集成開發環境的代碼編輯窗口中,保留字顯示為黑體。
3.1.2標識符
標識符是用來表示常量、變量、過程、函數、對象等語法實體的名稱符號,它分為系統預定義的標準標識符和用戶自定義標識符。
1. 系統預定義標識符
即標準標識符。它是Object Pascal語言系統預先配給標準函數、標準過程、標準常量以及標準文件等使用的標識符。例如標準的常量True和False、標準類型Integer和Real、標準函數Abs和Sqr等都是標準標識符。這些系統預定義的標識符在Object Pascal中都具有特定的含義,用戶不能更改。
2. 自定義標識符
自定義標識符是程序員根據程序設計的需要自定義的標識符,可用來表示常量、變量、函數、過程等的名字。自定義的標識符命名規則如下:
(1) 必須由字母、數字、下畫線組成,不能包含空格。
(2) 必須以字母或下畫線開始,即首字符不能是數字。
(3) 不能與保留字和標準標識符相同。
注意:
(1) 自定義標識符須先定義或說明后,才能在程序中使用。例如,變量要先聲明后使用。
(2) 自定義標識符長度不要超過255,否則只有前255個字符有效。
(3) 在Object Pascal中,標識符也不區分大小寫。因此,標識符MyName和myname被認為是同一個標識符。
小貼示:
一般情況下,使用有意義的英文單詞來為變量、過程或函數等命名,以增強程序代碼的可讀性。
……