本书采用“任务驱动”和“案例教学”的模式, 以突出实践应用能力为出发点, 通过丰富实用的案例, 由浅入深系统化地介绍了如何使用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被认为是同一个标识符。
小贴示:
一般情况下,使用有意义的英文单词来为变量、过程或函数等命名,以增强程序代码的可读性。
……