read.pudn.comread.pudn.com/downloads275/ebook/1250643/Delphi.doc · Web viewDelphi...

download read.pudn.comread.pudn.com/downloads275/ebook/1250643/Delphi.doc · Web viewDelphi 程序设计基础教程 主 编 副主编 内 容 简 介 目前有众多 Windows 下的开发工具,而

If you can't read please download the document

Transcript of read.pudn.comread.pudn.com/downloads275/ebook/1250643/Delphi.doc · Web viewDelphi...

Microsoft Word - CH01

21 世纪全国应用型本科计算机系列实用规划教材

Delphi 程序设计基础教程

主编 副主编

内 容 简 介

目前有众多 Windows 下的开发工具,而 Delphi 的开发环境是目前面向对象和控件开发性能最好的工 具之一。它使用 Microsoft Windows 图形用户界面的许多先进特性和设计思想,采用了可重复利用、完整 的、面向对象的程序语言,拥有当今世界上最快、最好的编译器,功能强大。

对于广大的程序开发人员来讲,使用 Delphi 开发应用软件无疑会大大提高编程效率。

本书按照 Delphi 7 的体系,系统、全面、深入地介绍了 Delphi 7 的各种功能。在讲解功能的同时,本书结 合可视化的编程方法和面向对象的编程方法,选取简短、易学的实用例子帮助读者深入理解所学的内容。

本书由浅入深地介绍了编写功能齐备的应用程序所需要的各个组成部分。简洁的语言、完整的代码和 详实的分析使读者能够真正体会到 Delphi 的威力,同时使 Delphi 的学习更加轻松和高效。

本书共分 14 章,分别讲述 Delphi 集成开发环境、Delphi 的编程语言、Delphi 窗体与组件、菜单设计、 对话框、工具栏和状态栏设计、Delphi 多媒体应用、Delphi 异常处理与调试、数据库编程、报表与图表、 面向对象的程序设计、Delphi 自定义组件的开发、动态链接库(DLLs)编程、多线程、文件操作内容。每章 后面都提供了习题,使读者充分掌握每一知识点。

本书可作为学习 Delphi 方面的本科教材或教学参考书,亦可作为软件开发人员的技术参考书籍。

图书在版编目(CIP)数据

Delphi 程序设计基础教程/张世明,曹德胜主编. —北京:中国林业出版社;北京大学出版社,2006.8 (21 世纪全国应用型本科计算机系列实用规划教材)

ISBN 7-5038-4420-5

Ⅰ. D… Ⅱ. ①张… ②曹… Ⅲ. 软件工具—程序设计—高等学校—教材 Ⅳ. TP311.56

中国版本图书馆 CIP 数据核字(2006)第 075898 号

书名:Delphi 程序设计基础教程 著作责任者:张世明 曹德胜 主编

策划编 辑:李彦红

责任编 辑:周 欢 曹 岚 张 敏

标准书 号:ISBN 7-5038-4420-5

出 版 者:中国林业出版社(地址:北京市西城区德内大街刘海胡同 7 号邮编:100009 )

http://www.cfph.com.cnE-mail:[email protected]

电话:总编室 66180373营销中心:66187711

北京大学出版社(地址:北京市海淀区成府路 205 号邮编:100871)

http://cbs.pku.edu.cn,http://www.pup6.comE-mail: [email protected]

电话:邮购部 62752015发行部 62750672编辑部 62750667出版部 62754962

印 刷 者:

发 行 者:北京大学出版社, 中国林业出版社

经 销 者:新华书店

787 毫米×1092 毫米 16 开本 26.5 印张 606 千字

2006 年 7 月第 1 版2006 年 7 月第 1 次印刷

定价:37.00 元

前言

Delphi 是 Borland 公司推出的面向对象的可视化编程工具,它以全新的可视化编程环 境,为用户提供了一种方便、快捷的 Windows 应用程序开发工具。它以其“可视化”、“真 编译”和“支持 OOP”等诸多优点红遍了软件开发界。今天,Delphi 将面向对象的方法成 功地与网络编程、COM 编程、多级 MIDAS 编程结合起来,越来越成为应用系统的首选开 发环境。

作为软件开发工具,Delphi 从问世至今,一贯秉承时代最先进、最科学的方法学。Delphi

坚持以肩负扩大计算机技术的应用领域为己任,它的每一次升级都适时地囊括了当时 IT 技 术应用的全部热点和编程技术的最新成果,令编程新手大有雪中送炭、高手大有如虎添翼 之感觉,所以无论是程序开发的初学者还是历经大项目锤炼的编程能手,都能从中找到自 己的所需。

Delphi 兼具 Visual C++的强大功能和 Visual Basic 的易学易用的特点。对于广大的程序

开发人员来讲,使用 Delphi 开发应用软件无疑会大大提高编程效率。 本书由浅入深、系统地介绍了 Delphi 编程方法,读者使用本书不需要预先具有任何编

程经验,但如果对 Pascal、C、C++或者 Visual Basic 等有所了解,那么将会对本书的学习 非常有益。

“边学边做”是学习一种编程工具的最有效方法,希望读者在阅读本书的过程中能够 上机实践。每学完一个例子,尝试改变一些代码,或者添加一些代码,将帮助读者体验进 步和成功的乐趣。

本书由张世明、曹德胜任主编,刘建粉、纪乃华、薛燕红任副主编。上海第二工业大 学的张世明编写了第 1、4、7、8、9、12、14 章,华北科技学院的曹德胜编写了第 2、3 章, 平顶山学院的刘建粉编写了第 5、6 章,青岛理工大学的纪乃华编写了第 10、11 章,陕西 理工学院的薛燕红编写了第 13 章及部分实验。

由于作者水平有限,书中难免有不足之处,恳请读者批评指正。笔者电子邮件地址为:

[email protected]

HYPERLINK mailto:[email protected] [email protected]

编者

2006 年 3 月

《21 世纪全国应用型本科计算机系列实用规划教材》

联合编写学校名单(按拼音顺序排名)

1安徽财经大学

2安徽工业大学

3安徽建筑工程学院

4安徽工程科技学院

5安阳师范学院

6北华大学

7北京化工大学

8北京建筑工程学院

9北京理工大学

10渤海大学

11长春大学

12长春工业大学

13长春理工大学

14滁州学院

15福建工程学院

16福建师范大学

17广西财经学院

18桂林工学院

19哈尔滨理工大学

20韩山师范学院

21合肥工业大学

22合肥学院

23河北经贸大学

24河南科技学院

25黑龙江八一农垦大学

26黑龙江科技学院

27湖南大学

28湖北经济学院

29孝感学院

30湖州师范学院

31华北科技学院

32华南师范大学

33华中农业大学

34华中师范大学

35华北水利水电学院

36淮北煤炭师范学院

37黄石理工学院

38吉林农业大学

39集美大学

40江汉大学

41江苏科技大学

42内蒙古大学

43南昌工程学院

44南京航空航天大学

45南京师范大学

46南京审计学院

47南阳理工学院

48宁波工程学院

49平顶山学院

50青岛理工大学

51青岛科技大学

52青海民族学院

53曲阜师范大学

54山西大学

55山西运城学院

56山西医科大学

57山东理工大学

58陕西理工学院

59上海第二工业大学

60上海海事大学

61沈阳大学

62沈阳化工学院

63石家庄铁道学院

64苏州大学

65台州学院

66太原理工大学

67太原师范学院

68唐山师范学院

69同济大学

70皖西学院

71温州大学

72武汉大学

73武汉科技学院

74武汉理工大学

75武夷学院

76忻州师范学院

77新疆石油学院

78咸宁学院

79许昌学院

80玉溪师范学院

81浙江工业大学之江学院

82中国农业大学

83中国石油大学

专家编审委员会

(按姓氏笔画排名)

主任刘瑞挺

副主任

胡昌振

段禅伦

崔广才

谢红薇

陈天煌范冰冰

秦锋龚声蓉

分系列专家编审委员会名单

(按姓氏笔画排名)

计算机应用技术——

主任

胡昌振

副主任

杨璐

龚声蓉

委员

云敏

马秀峰

李明

肖淑芬

周松林

杨长生

钟声

赵忠孝

高巍

软件开发与软件工程——

主任

谢红薇

副主任

叶俊民

陈天煌

委员

王建国

孙辉

吕海莲

李福亮

何朝阳

张世明

陈佛敏

贺华

赵绪辉

徐庆生

徐辉

硬件与网络技术——

主任

崔广才

副主任

范冰冰

胡明

委员

龙冬云

冯嘉礼

曲朝阳

汤惟

张有谊

董春游

程小辉

专业基础课——

主任

段禅伦

副主任

陈仲民

秦锋

委员

王昆仑

王虹

仇汶

田敬军

刘克成

朴春慧

吴晓光

苏守宝

陈付贵

昝风彪

谭水木

魏仕民

本系列教材出版说明

我国高等教育正迎来一个前所未有的发展机遇期。高等教育的发展已进入到一个新的 阶段。高等本科院校也逐渐演变成“研究型、学术型”和“应用型、就业型”两类。

作为知识传承载体的教材,在高等院校的发展过程中起着至关重要的作用。但目前教 材建设却远远滞后于应用型人才培养的步伐,许多院校一直沿用偏重于研究型的教材,应用 型教材比较缺乏,这势必影响应用型人才的培养。

为顺应高等教育普及化迅速发展的趋势,配合高等院校的教学改革和教材建设,坚持 “因材施教”的教学原则,注重理论联系实际,全面促进高等院校教材建设,进一步提高 我国高校教材的质量,北京大学出版社和中国林业出版社大力推出高校“应用型本科”有 关专业教材。本系列教材不仅讲解基础理论技术,更突出工程实际应用,注重技术与应用 的结合。

本套计算机系列教材编写的主要指导思想:

(1) 要符合学校、学科的计算机课程设置要求。以高等教育的培养目标为依据,注重 教材的科学性、实用性、通用性,尽量满足同类专业院校的需求。

(2) 要定位明确。准确定位教材在人才培养过程中的地位和作用,正确处理系列教材 与系列课程、读者层次的关系,面向就业,突出应用。

(3) 合理选材和编排。教材内容应处理好传统内容与现代内容的关系,大力补充新知 识、新技术、新工艺、新成果。根据教学内容、学时、教学大纲的要求,制定模块化编写 体例,突出重点、难点。

(4) 体现建设“立体化”精品教材的宗旨。提倡为主干课程配套电子教案、学习指导、 习题解答、课程设计、毕业设计等教学配套用书。

与此同时,我们为教学提供以下服务:

(1) 提供教学资源下载。本系列大部分教材中涉及到的实例(习题)的原始图片和其他素 材或者是源代码、原始数据等文件,都可以在相关网站上下载。每本教材都配有 PPT 电子 教案,老师可随时在网络上下载并可修改为适合自己教学的 PPT(http://www.pup6.com)。

(2) 提供多媒体课件和教师培训。针对某些重点课程,我们配套有相应的多媒体课件, 对大批量使用本套教材的学校,我们会免费提供多媒体课件。另外,我们还将免费提供教 师培训名额,不定期组织老师进行培训。

(3) 欢迎互动。欢迎使用本系列教材的老师和同学提出意见和建议,有建设性的将给 予奖励;同时愿意为有意向出版教材或专著的老师提供服务。

北京大学出版社第六事业部 中国林业出版社教材建设与出版管理中心

信息技术的应用化教育

(代序)

刘瑞挺*

北京大学出版社与中国林业出版社共同组织编辑出版的这套“21 世纪全国应用型本科 计算机系列实用规划教材”,是一套既注重理论体系,更关注能力培养的“应用型、就业 型”人才培养目标的系列教材,教学内容安排合理,重视实例分析,针对性很强。

为了编辑出版好这套系列教材,2004 年 10 月,编辑们制订了详细的编写目的、系列 教材的特色、内容要求和风格规范,分别深入各地高校,了解教学第一线的情况,物色合 适的作者。2005 年 4 月 16 日,在北京大学召开了“21 世纪全国应用型本科计算机系列实 用规划教材”研讨会。来自全国 73 所院校的 102 位教师汇聚一堂,共同商讨应用型本科计 算机系列教材建设的思路,并对规划选题进行了分工。2005 年 7 月 21 日在青岛又召开了 “21 世纪全国应用型本科计算机系列实用规划教材”审纲会。编审委员会成员和 46 个选 题的主编、参编,共 100 多位教师参加了会议。审稿会分专业基础课、软件开发与软件工程、 硬件与网络技术、计算机应用技术等小组对大纲及部分稿件进行了审定,力争使这套规划 教材成为切合当前教学需要的高质量的精品教材。

要编辑出版好这套教材,就要转变一些重要的观念:

首先,需要转变的观念就是大学及其培养人才的定位。大学并不都是“研究型”的,每 个大学生不一定都当科学家。事实上,大多数学校应该是“应用型”的,大学生将直接进 入社会基层、生产一线、服务前沿,成为各行各业的实践者和带头人。

其次,应该转变的观念就是教材建设的思路。许多人偏爱于“研究型”的教材,即使 写“应用型”教材,也多半是对前者进行删繁就简、避虚就实,这样还不能产生真正“应 用型”的教材。因此,以“学科”为中心、追求雄厚“理论基础”的传统应该被以“应用” 为导向、追求熟练“实践技能”的思路所取代。

第三,必须转变对计算机技术的认识。20 年前,有人把计算机技术理解为 BASIC 编 程;10 年前,有人把 Windows 95 和 Word 称为计算机文化;今天,中小学陆续开出《信息 技术》课,有人对此怀疑观望,其实它意义深远。以计算机为核心的信息技术,今后 20 年 的发展主题将是在各个领域的应用普及。大学计算机应用型本科的教材建设应该面向信息 技术的深入应用,而不是相反,因为信息时代已经不是遥远的未来。

以计算机为核心的信息技术,从一开始就与应用紧密结合。例如,ENIAC 用于弹道计

算,ARPANET 用于资源共享以及核战争时的可靠通信。即使是非常抽象的图灵机模型,也 与第二次世界大战时图灵博士破译纳粹密码的工作相关。

今天的信息技术有三个重要的特点: 第一,信息技术是计算机与通信技术融合的辉煌成果。长期以来,计算机技术和通信

* 刘瑞挺教授 曾任中国计算机学会教育培训委员会副主任、教育部理科计算机科学教学指导委员会委员、全国计算机等级考

试委员会委员。目前担任的社会职务有:全国高等院校计算机基础教育研究会副会长、全国计算机应用技术证书考试委员会副 主任、北京市计算机教育培训中心副理事长。

II

技术并行不悖地独立发展。20 世纪后半叶,两者相互渗透,产生了程控电话、数据通信、网 络技术、高清晰电视,世界各国构建了全球的、宽带的、网站密布的信息高速公路,出现 了无处不在的手机通信和移动办公系统、随身听、数码摄录相机、家庭影院、智能控制系 统,还有越来越多的嵌入式系统。人们的工作方式和生活方式都发生了质的飞跃。

第二,信息技术与各行各业紧密结合。我国的职业门类有:农林牧渔、交通运输、生

化与制药、地矿与测绘、材料与能源、土建水利、制造、电气信息、环保与安全、轻纺与 食品、财经、医药卫生、旅游、公共事业、文化教育、艺术设计传媒、公安、法律,这些 门类都需要信息技术。

第三,在发展初期,以计算机为核心的信息技术是一项专门技术,只有专家才需要它、 才能掌握它,在专家与平民之间有很深的“信息鸿沟”。今天,信息技术已经不再是只有专 家才需要、才能掌握的专门技能,而是普通人都需要、也都能掌握的基本信息技能。但是, “信息鸿沟”也迁移到普通人之间。具有信息优势的学生能良性循环,强者更强。

有了这样广阔的应用信息背景,再造计算机应用型本科的课程体系就有了基础。 关于应用型计算机人才的能力结构,我们不用“宫殿”模型,而用“雄鹰”模型。前

者是建筑学模型,适合描述学科;后者是生物学模型,适合描述人才。“雄鹰”模型包括主 体、两翼、头部、尾部等,它有可成长性。

首先,数据是信息技术的主体,数据技术是基本功。通常,数据包括文字、公式、表 格、图形、图像、动画、声音、视频等。因此,你不仅要会录入文章、绘制图表,还应该 会采集音乐、编辑视频。大家面对的是多媒体数据,应该能收集它、整理它,数据经过整 理就成为有用的信息。

其次,信息技术的两翼是数据库技术和网络技术。为了管理好、使用好数据,就必然 用到数据库技术,数据库技术是一切信息管理的基石。为了分享数据和信息,就需要网络 技术。有了上述数据主体技术和两个“翅膀”,你应该可以起飞了。

但是能飞多高,能飞多远,还应该有编程技术、智能技术、安全技术的支持。这相当 于头尾各部分的作用。编程将使大家的信息技能游刃有余。人工智能使你飞得更远,安全 技术能使你飞得更稳。

有人可能会责难我们,难道大学本科生还需要学习办公软件的技能吗?他们认为这是 让人“笑掉大牙”的事。其实,办公软件是最重要的提高生产效率的应用软件,很容易使 用,但各人使用效率的高低则十分悬殊。我们设想,今后大学生在入学前先学会计算机的基 本操作,我们再开一门高级办公技术的课,通过严格的行业及个人行为规范,对学生进行 应用化训练,养成正确的职业习惯,将来工作时能提高效率、改善质量、降低成本。这绝 不是贻笑大方的事。

应用型本科教材的规划是一个长期的战略任务,不是短期的战术行为。因此,目前的 规划教材不可能一步到位,还会保留一些传统的基础课。例如,数字电路与逻辑设计、微 机原理及接口技术、单片机原理及应用等。即使是纯硬件专业的学生,如何学这些传统硬 件课都值得商榷,更何况公共基础课。

我们将分门别类逐步建设好应用型本科的重点课程和教材:

(1) 基础类教材:信息技术导论,计算机应用基础,高级办公技术,数据与操作,密 码与安全,实用数据结构,实用离散数学,……

III

(2) 数据库类教材:数据库原理与应用,信息系统集成,数据采掘与知识发现,…… (3) 网络类教材:计算机网络,因特网技术,网络管理与安全,网站与网页设计,…… (4) 编程类教材:面向对象程序设计,C++程序设计,Java 程序设计,……

(5) 提高类教材:软件工程原理及应用,人工智能原理及应用,…… 新教材要体现教育观念的转变,系统地研究普通高校教学改革的需求,优先开发其中

教学急需、改革方案明确、适用范围较广的教材。注重规划教材的科学性、实用性、易学 性,尽量满足同类专业院校的需求。教材内容应处理好传统与现代的关系,补充新知识、新 技术、新工艺、新成果。

我相信北京大学出版社和中国林业出版社在全国各地高校教师的积极支持下,精心设

计,严格把关,一定能够建设一批符合应用型人才培养目标的、适应计算机应用型人才培 养模式的系列精品教材,而且能建设一体化设计、多种媒体有机结合的立体化教材,为各 门课程配套电子教案、学习指导、习题解答、课程设计等辅导资料。让我们共同努力吧!

目录

第 1 章Delphi 集成开发环境 ..................... 12.2.4 指针类型................................... 30

2.2.5 过程与函数类型....................... 31

1.1 Delphi 主窗口 ........................................ 2

1.1.1 标题栏 ........................................ 2

1.1.2 菜单栏 ........................................ 2

1.1.3 工具栏 ........................................ 3

1.1.4 组件板 ........................................ 3

1.2 Delphi 窗体窗口..................................... 3

1.2.1 窗体窗口 .................................... 3

1.2.2 窗体文件 .................................... 4

1.3 代码编辑窗口 ........................................ 4

1.4 对象查看器窗口 .................................... 4

1.4.1 对象查看器窗口的组成............. 5

1.4.2 设置属性 .................................... 5

1.4.3 添加事件 .................................... 6

1.5 项目管理器 ............................................ 6

1.5.1 项目组成 .................................... 7

1.5.2 项目管理器 ................................ 9

1.5.3 项目管理 .................................. 10

1.5.4 项目编译和运行....................... 12

1.6 Delphi 程序设计过程........................... 14

1.7 实验 ...................................................... 17

习题 ............................................................... 19

2.2.6 可变类型................................... 31

2.3 常量和变量的定义............................... 32

2.3.1 常量........................................... 32

2.3.2 变量........................................... 32

2.4 运算符和表达式................................... 33

2.4.1 算术运算符............................... 34

2.4.2 逻辑运算符............................... 34

2.4.3 关系运算符............................... 34

2.4.4 位运算符................................... 35

2.4.5 指针运算符............................... 35

2.4.6 集合运算符............................... 35

2.5 语句 ...................................................... 36

2.5.1 简单语句................................... 36

2.5.2 条件语句................................... 36

2.5.3 循环语句................................... 38

2.6 过程与函数........................................... 40

2.6.1 过程和函数的声明................... 40

2.6.2 过程和函数的参数................... 40

2.6.3 过程和函数的调用................... 42

2.7 实验 ...................................................... 43

2.7.1 编写对象 Pascal 应用程序....... 43

第 2 章Delphi 的编程语言........................ 212.7.2 函数和过程的编写和调用 ....... 44

2.1 保留字和标识符 .................................. 21

习题 ............................................................... 46

2.1.1 保留字和标准指令符............... 21第 3 章Delphi 窗体与组件........................ 47

2.1.2 标识符 ...................................... 22

2.1.3 注释 .......................................... 22

2.1.4 控制台程序中的屏幕输入

3.1 Delphi 窗体........................................... 47

3.1.1 窗体与窗口............................... 47

和输出 ...................................... 223.1.2 窗体属性................................... 47

3.1.3 窗体事件................................... 48

2.2 Object Pascal 的数据类型.................... 23

2.2.1 简单数据类型........................... 24

2.2.2 字符串类型 .............................. 28

2.2.3 结构类型 .................................. 29

3.2 设计窗体 .............................................. 48

3.2.1 新建窗体................................... 48

3.2.2 设置窗体属性........................... 49

3.2.3 添加组件 .................................. 49

3.2.4 编辑组件 .................................. 49

3.2.5 设置组件属性........................... 49

3.2.6 保存文件 .................................. 49

3.3 文本型组件 .......................................... 50

3.3.1 Label 组件 ................................ 50

3.3.2 Static Text 组件 ........................ 51

3.3.3 Tab 组件 ................................... 52

3.4 按钮型组件 .......................................... 52

3.4.1 Button 组件............................... 52

3.4.2 BitBtn 组件............................... 53

3.4.3 RadioButton 组件 ..................... 54

3.4.4 CheckBox 组件......................... 54

3.5 编辑型组件 .......................................... 54

3.5.1 Edit 组件................................... 54

3.5.2 MaskEdit 组件.......................... 56

3.5.3 Memo 组件 ............................... 57

3.5.4 RichEdit 组件 ........................... 58

3.6 列表框型组件 ...................................... 60

3.6.1 ListBox 组件............................. 60

3.6.2 CheckBox 组件......................... 62

3.6.3 ComboBox 组件 ....................... 62

3.7 滑块型组件 .......................................... 63

3.7.1 Scrollbar 组件........................... 63

3.7.2 TrackBar 组件 .......................... 64

3.8 容器型组件 .......................................... 64

3.8.1 GroupBox 组件......................... 64

3.8.2 Panel 组件................................. 65

3.8.3 ScrollBox 组件 ......................... 66

3.9 MDI 程序 ............................................. 66

3.9.1 MDI 窗体及其属性.................. 66

3.9.2 利用模板创建 MDI 应用

程序 .......................................... 67

3.10 实验 .................................................... 68

3.10.1 设计由按钮类组件实现 的功能窗体............................. 68

3.10.2 设计由列表类组件实现的 功能窗体 ................................ 70

3.10.3 按需求将各种组件灵活组合,

实现功能窗体......................... 73

习题 ............................................................... 74

第 4 章菜单设计............................................ 76

4.1 菜单设计简介....................................... 76

4.1.1 菜单结构................................... 76

4.1.2 菜单命令项的作用................... 76

4.1.3 菜单设计器............................... 77

4.2 主菜单设计........................................... 77

4.2.1 打开主菜单设计器................... 78

4.2.2 添加菜单命令项....................... 78

4.2.3 菜单命令项分组....................... 79

4.2.4 菜单命令项热键....................... 79

4.2.5 调整菜单命令项....................... 79

4.2.6 创建级联菜单........................... 80

4.3 菜单命令响应....................................... 80

4.4 运行时设置菜单................................... 82

4.4.1 菜单命令灰显........................... 83

4.4.2 隐藏菜单命令........................... 83

4.4.3 改变菜单命令文本................... 84

4.4.4 菜单命令单选标记................... 84

4.4.5 菜单命令复选标记................... 84

4.5 创建动态菜单....................................... 85

4.6 图形菜单 .............................................. 88

4.7 快捷菜单设计....................................... 89

4.7.1 快捷菜单的设计....................... 89

4.7.2 快捷菜单的响应....................... 90

4.8 实验 ...................................................... 91

习题 ............................................................... 93

第 5 章对话框、工具栏和状态栏设计 .... 95

5.1 对话框设计........................................... 95

5.1.1 文件对话框组件....................... 95

5.1.2 字体对话框组件....................... 97

5.1.3 颜色对话框组件....................... 98

5.1.4 打印、打印设置和页面设置 对话框组件............................... 98

5.1.5 查找和替换对话框组件........... 99

5.1.6 消息框和输入框..................... 100

5.1.7 对话框综合应用实例..............1027.3.1 异常响应与 try…except

5.2 工具栏设计 .........................................107

语句......................................... 155

5.2.1 用面板构成工具栏..................1077.3.2 异常保护与 try…finally

5.2.2 使用工具栏组件......................112

语句......................................... 157

5.2.3 使用 TCoolBar 组件................1137.3.3 异常的重引发和处理嵌套 ..... 159

5.2.4 使用 TControlBar 组件 ...........1157.3.4 定义自己的异常..................... 159

5.3 状态栏设计 .........................................1157.3.5 利用异常响应编程................. 163

5.4 实验 .....................................................118

7.4

Delphi 调试器..................................... 165

习题 ..............................................................121

7.4.1 准备调试................................. 165

第 6 章Delphi 多媒体应用.......................123

7.4.2 设置调试器的选项................. 165

7.5 控制程序的运行................................. 166

6.1 绘图组件 .............................................1237.5.1 单步执行................................. 166

6.1.1 TShape 组件 ............................1237.5.2 跟踪执行................................. 167

6.1.2 画布对象 .................................1247.5.3 跳过一段代码......................... 168

6.1.3 TPaintBox 组件 .......................1247.5.4 全速执行剩余的代码............. 168

6.1.4 TImage 组件 ............................1247.5.5 返回到执行点......................... 168

6.2 图形列表组件 .....................................1307.5.6 暂停运行................................. 168

6.2.1 TTreeView 组件 ......................1307.5.7 重新开始运行......................... 168

6.2.2 TListView 组件 .......................1317.5.8 命令行参数............................. 169

6.3 图形栅格组件 .....................................1327.6 断点 .................................................... 169

6.3.1 TStringGrid 组件 .....................1337.6.1 源代码断点............................. 169

6.3.2 TDrawGrid 组件......................1347.6.2 机器指令断点......................... 170

6.3.3 TColorGrid 组件......................1367.6.3 数据断点................................. 171

6.4 图形日历组件 .....................................1367.6.4 模块断点................................. 171

6.4.1 TDateTimePicker 组件 ............1377.6.5 指定遇到断点时的行为......... 171

6.4.2 TCalendar 组件........................1377.6.6 断点列表窗口......................... 172

6.5 多媒体组件 .........................................1377.6.7 删除断点................................. 173

6.5.1 TMediaPlayer 组件..................1377.6.8 设置断点的属性..................... 173

6.5.2 多媒体播放器..........................1387.6.9 禁止和允许断点..................... 173

6.5.3 Flash 播放器............................1417.7 监视表达式的值................................. 174

6.6 实验 .....................................................1447.7.1 观察窗口................................. 174

习题 ..............................................................1487.7.2 计算和修改表达式的值......... 175

第 7 章Delphi 异常处理与调试..............150

7.1 Delphi 异常处理..................................150

7.1.1 异常处理的意义......................150

7.1.2 错误类型 .................................151

7.2 Delphi 异常类 .....................................153

7.3 Delphi 异常处理机制..........................155

7.7.3 计算提示................................. 176

7.7.4 Inspector 窗口......................... 176

7.7.5 查看局部变量的值................. 177

7.8 实验 .................................................... 177

7.8.1 Delphi 异常处理机制 ............. 177

7.8.2 Delphi 调试............................. 178

习题 ............................................................. 180

第 8 章数据库编程......................................183

8.1 数据库系统概述 .................................183

8.1.1 数据库管理系统......................183

8.1.2 关系数据库 .............................184

8.1.3 数据库应用程序......................184

8.1.4 Delphi 数据库的体系结构......184

8.2 BDE 组件 ............................................188

8.2.1 TTable 组件介绍 .....................189

8.2.2 TQuery 组件介绍 ....................199

8.3 ADO 组件............................................206

8.3.1 TADOConnection 组件 ...........208

8.3.2 TADOCommand 组件.............210

8.3.3 TADODataSet 组件.................212

8.3.4 TADOTable 组件 ....................213

8.4 数据控制组件简介 .............................214

8.4.1 TDBGrid 组件介绍 .................215

8.4.2 TDBNavigator 组件介绍.........217

8.4.3 TDBText 组件介绍 .................219

8.4.4 TDBEdit 组件介绍..................219

9.1.1 QuickReport 概述 .................. 244

9.1.2 TQuickRep 组件 .................... 245

9.1.3 TQRSubDetail 组件................ 247

9.1.4 TQRBand 组件 ....................... 248

9.1.5 TQRChildBand 组件............... 249

9.1.6 TQRGroup 组件...................... 250

9.1.7 TQRLabel 组件....................... 250

9.1.8 TQRDBText 组件................... 250

9.1.9 TQRExpr 组件........................ 250

9.1.10 TQRsysData 组件 ................. 251

9.1.11 TQRMemo 组件 ................... 252

9.1.12 TQRRichText 组件............... 252

9.1.13 TQRDBRichText 组件.......... 252

9.1.14 TQRShape 组件 .................... 252

9.1.15 TQRImage 组件.................... 252

9.1.16 TQRDBImage 组件 .............. 252

9.1.17 TQRComposite 组件............. 252

9.1.18 TQRPreview 组件................. 253

9.2 QuickReport 报表实例 ....................... 253

8.4.5

TDBMemo 组件介绍 ..............220

9.2.1

打印单数据库报表................. 253

8.4.6

TDBImage 组件介绍...............221

9.2.2

打印标签、信封..................... 256

8.4.7

TDBListBox 组件介绍............221

9.2.3

打印主/明细表........................ 258

8.4.8 TDBComboBox 组件介绍 ......2219.2.4 打印分组与统计报表............. 260

8.4.9 TDBCheckBox 组件介绍........2229.3 Rave 报表设计器的组件.................... 262

8.4.10 TDBRadioGroup 组件介绍 ...2229.3.1 Rave 5 的报表设计界面......... 262

8.4.11 TDBLookupListBox 组件

介绍 .......................................223

8.4.12 TDBLookupComboBox 组件 介绍 .......................................223

9.3.2 Drawing(绘图)组件页 ............ 263

9.3.3 Bar Code(条形码)组件页 ....... 263

9.3.4 Standard(标准)组件页 ............ 263

9.3.5 Report(报表)组件页 ............... 263

8.4.13 TDBCtrlGrid 组件介绍 .........2239.3.6 其他组件页............................. 264

8.4.14 TDBRichEdit 组件介绍.........224

8.4.15 TDBChart 组件介绍..............224

8.5 实验 .....................................................231

8.5.1 设计数据表结构......................231

8.5.2 设计数据表编辑窗体..............232

8.5.3 设计数据表查询窗体..............238

习题 ..............................................................242

9.4 Delphi 中的 Rave 组件....................... 265

9.4.1 RvProject 组件........................ 265

9.4.2 RvSystem 组件 ....................... 266

9.4.3 其他组件................................. 267

9.5 Rave 报表例程 ................................... 267

9.5.1 设计 Rave 报表....................... 267

9.5.2 调用 Rave 报表....................... 271

第 9 章报表与图表......................................2449.6 图表 .................................................... 271

9.1 QuickReport 组件................................244

9.6.1 DBChart 组件 ......................... 271

9.6.2 设计图表 .................................27311.1.2 现有的组件........................... 309

9.7 实验 .....................................................27411.1.3 组件模板............................... 310

习题 ..............................................................27911.1.4 选择祖先类的建议............... 311

第 10 章面向对象程序设计......................281

11.2 建立组件框架................................... 312

11.3 加入属性........................................... 314

10.1 面向对象程序设计概念....................28111.3.1 加入简单型的属性............... 314

10.1.1 结构化程序设计方法............28111.3.2 加入枚举型的属性............... 314

10.1.2 面向对象的设计方法............28211.3.3 加入集合型的属性............... 315

10.2 类 .......................................................28411.3.4 加入对象型的属性............... 315

10.2.1 类的定义 ...............................28411.3.5 加入数组型的属性............... 316

10.2.2 保护方式 ...............................28511.3.6 公开继承的属性................... 316

10.2.3 类的实例化............................28611.3.7 给出属性的默认值............... 317

10.2.4 类操作符 ...............................28611.4 加入方法........................................... 317

10.3 方法 ...................................................28711.4.1 方法的可见性....................... 317

10.3.1 一般方法 ...............................28711.4.2 避免内部相关性................... 318

10.3.2 构造方法 ...............................28911.4.3 给方法命名........................... 318

10.3.3 析构方法 ...............................29011.4.4 加入静态方法....................... 318

10.3.4 类方法 ...................................29011.4.5 加入虚拟方法....................... 319

10.3.5 隐含参数 Self ........................29111.4.6 加入动态方法....................... 319

10.4 继承和多态 .......................................29211.4.7 加入消息处理方法............... 320

10.4.1 继承 .......................................29211.5 加入事件........................................... 320

10.4.2 覆盖 .......................................29311.6 安装组件........................................... 323

10.4.3 抽象类 ...................................29411.7 实验 .................................................. 324

10.4.4 多态 .......................................295习题 ............................................................. 327

10.4.5 共同祖先 TObject..................296

10.5 属性 ...................................................297

第 12 章动态链接库(DLLs)编程............ 329

10.5.1 属性定义 ...............................29712.1 动态链接库概述............................... 329

10.5.2 属性的访问方法....................29812.1.1 Windows 系统的动态

10.6 消息 ...................................................299

链接库................................... 329

10.6.1 消息机制 ...............................29912.1.2 为什么使用 DLL .................. 330

10.6.2 发送消息 ...............................30012.1.3 DLL 与 EXE 文件之间

10.6.3 处理消息 ...............................301

的区别................................... 331

10.6.4 用户自定义消息....................30312.1.4 DLL 编写规则 ...................... 331

10.7 实验 ...................................................30512.2 在 Delphi 中编写 DLLs.................... 331

习题 ..............................................................30712.2.1 编写一般 DLLs 的步骤........ 332

第 11 章Delphi 自定义组件的开发.......308

12.2.2 动态链接库中的标准指示 ... 334

12.2.3 库初始化代码的编写........... 335

11.1 选择祖先类 .......................................30812.2.4 从 DLL 中输出字符串 ......... 337

11.1.1 公共祖先类............................30812.3 在 Delphi 中 DLLs 的调用............... 340

12.3.1 调用 DLL 方式......................340

12.3.2 静态调用 ...............................340

12.3.3 动态调用 ...............................342

12.4 利用 DLLs 实现窗体重用 ................345

12.4.1 利用 DLLs 实现窗体重用 的一般步骤............................346

12.4.2 使用 DLL 模态窗体..............346

12.4.3 DLL 中的非模态窗体...........346

12.5 DLL 与 Delphi 组件包......................351

12.6 实验 ...................................................352

习题 ..............................................................356

第 13章多线程.............................................358

13.1 多线程概述 .......................................358

13.1.1 什么是多线程........................358

13.1.2 使用多线程的优缺点............358

13.1.3 编写多线程应用程序步骤....359

13.2 多线程编程 .......................................359

13.2.1 创建线程对象........................359

13.2.2 线程的同步............................361

13.2.3 设置线程的优先级................362

13.2.4 挂起和唤醒............................363

13.2.5 缓存线程对象........................363

13.2.6 线程终止 ...............................365

13.2.7 一个多线程排序程序............370

13.3 实验 ...................................................375

习题 ............................................................. 379

第 14 章文件操作 ....................................... 381

14.1 文件操作命令................................... 381

14.1.1 文件的类型........................... 381

14.1.2 文件的定义........................... 381

14.1.3 文件管理命令....................... 382

14.1.4 文本文件命令....................... 382

14.1.5 输入输出命令....................... 383

14.2 文本文件........................................... 383

14.2.1 打开文本文件....................... 383

14.2.2 关闭文本文件....................... 384

14.2.3 写入文本文件....................... 384

14.2.4 读取文本文件....................... 385

14.3 非文本文件....................................... 386

14.3.1 类型文件............................... 386

14.3.2 无类型文件........................... 389

14.4 文件系统........................................... 390

14.4.1 文件系统组件....................... 390

14.4.2 文件控制单元....................... 393

14.5 实验 .................................................. 396

14.5.1 文件名操作........................... 396

14.5.2 文件读写操作....................... 399

习题 ............................................................. 401

参考文献................................................... 403

第 1 章Delphi 集成开发环境

教学提示:Delphi是一个集成开发环境,从程序设计、代码编译、调试,到最后形成发布 程序的全部工作都可以在这个集成环境中完成。为了帮助用户迅速高效地开发应用程序, Delphi提供了许多功能强大的开发工具和丰富的菜单命令,本章将对Delphi集成环境中的各 个组成部分作一个概要的描述。 教学要求:在学习Delphi之前,不仅要清楚Delphi的总体构成,了解Delphi包括的工具,还 要熟悉Delphi的集成环境。本章主要介绍Delphi集成环境的一些基础知识。通过对本章的学 习,读者应该了解Delphi 主窗口及其组成,以及Delphi窗体窗口,熟练代码编辑器窗口使 用,熟悉对象查看器和项目管理器,掌握Delphi程序设计过程。

Delphi 是 Borland 公司推出的基于 Object Pascal 语言的可视化集成开发工具。利用 Delphi 编程,可以快速、高效地开发出基于 Windows 环境的各类程序,尤其在数据库、网 络和系统工具等开发方面,Delphi 更是一个十分理想的软件开发平台。本书以 Delphi 7(以 下简称 Delphi)作为典型实例介绍。

Delphi 集成开发环境的界面分为 4 个部分,分别是主窗口、窗体窗口、代码编辑窗口 和对象查看器窗口,如图 1.1 所示。除了这几个部分外,集成环境还有许多功能强大的工 具,如项目管理器、菜单设计器、集成调试器、对象浏览器、对象库和专家工具等。

主窗口

窗体窗口

看器窗口

码 编 辑 窗 口

图 1.1 Delphi 集成开发环境界面

1.1Delphi 主窗口

Delphi 主窗口如图 1.2 所示,由标题栏、菜单栏、工具栏和组件板组成,它是打开其 他窗口和退出 Delphi 集成环境主要界面。

标题栏

菜单栏

工具栏

组件板

图 1.2 Delphi 主窗口

1.1.1标题栏

主窗口顶部的水平长条称为标题栏,标题栏提供了两部分信息:"Delphi 7" 和项目文 件名。标题栏最左端是 Delphi 开发程序的图标(控制菜单)和 Delphi 开发程序版本;紧接着 是当前载入的项目文件名称。如果载入的是一个新建的项目,Delphi 会提供默认项目名 “Project1”,标题栏就会显示“Delphi 7-Project1”。

当 Delphi 环境处于不同的状态时,标题栏还会显示相应信息。标题栏右边有 3 个按钮, 用于控制窗口的最小化、最大化和关闭。而标题栏最左侧的小图标是窗口控制菜单框,用 鼠标单击就可完成一些针对窗口的操作。

1.1.2菜单栏

标题栏的下面是菜单栏,它集成了 Delphi 的各项命令和工具,包括【File】(文件)、【Edit】 (编辑)、【Search】(搜索)、【View】(视图)、【Project】(项目)、【Run】(运行)、【Component】 (组件)、【Database】(数据库)、【Tools】(工具)、【Window】(窗口)、【Help】(帮助)11 项菜单,单击就可以激活它们,各项菜单的功能见表 1-1。

表 1-1 菜单功能一览表

菜单

功能

File

含有新建、打开和保存 Delphi 应用程序中各个项目和文件的命令

Edit

提供了编辑代码和窗体组件的各种命令,如删除、复制和粘贴等

Search

搜索、替换和定位字符串命令

View

打开 Delphi 环境各个窗口和项目中的窗体和单元文件等

Project

管理、编译和配置项目文件

Run

调试应用程序,如设置断点、单步执行等

(续)

菜单

功能

Component

用于建立和安装组件以及定制自己的组件板

Database

开发数据库应用程序的各种工具

Tools

包括 Delphi 环境设置和一些 Delphi 外挂工具

Window

切换指定窗口为活动窗口

Help

包括 Delphi 帮助文件

1.1.3工具栏

工具栏把一些常用的菜单命令以图标按钮的方式显示出来,以便于快速访问,除了组 件板外,共有 6 个工具栏(包括 20 多个加速按钮),只要将鼠标指针在按钮上停留一下,就 会弹出关于此按钮功能的提示。

1.1.4组件板

工具栏的右侧为组件板。组件板是 Delphi 的核心构件,因为 Delphi 的主要特点就是 使用组件进行程序设计,所以必须掌握各种组件的功能和使用方法。

组件板包括许多组件页,每个组件页又包含很多组件,图 1.2 中显示了 Standard 组件 页包含的组件。Delphi 共预定义了 30 多个组件页,一般情况下无法全部显示出来。可以 单击组件板右边的箭头来左右移动组件板的标签。

组件板用来选取要添加到窗体上的各种组件,每个组件页上有一排相关组件的图标, 选取要用的图标后,在窗体的某位置单击,就可以把它放置到窗体上。

1.2Delphi 窗体窗口

窗体窗口也称表单窗口。窗体窗口是用于设计应用程序的界面,在大多数情况下,窗 体是用户的主要操作对象。

1.2.1窗体窗口

窗体窗口的顶端水平条是窗体的标题栏,结构与主窗口的标题栏相似,由图标、窗体 名称和用于控制窗体的最小化、最大化、关闭按钮组成。

窗体窗口的标题栏显示了窗体的当前标题。一般新窗体将会用默认名字 Form1 命名。 当然,用户可以通过对象查看器设置窗体的标题等属性。

窗体也是窗口的设计界面,用户可以往窗体中添加各种组件,然后再对组件的属性进 行设置。这样使得整个应用程序的编辑过程可视化和易掌握。

1.2.2窗体文件

每一个窗体都有相应的窗体文件(.DRM),它保存着窗体和窗体内各个组件的属性,而 且每个窗体都有一个单元文件,用于编写窗体事件处理过程。窗体文件和单元文件被 Delphi 自动保存在同一个目录下。

右击窗体网格工作区,会打开一个快捷菜单。该菜单包含了设计窗体时所需的各种常 用命令。

选择【View as Text】命令即可看到以“.DFM”为扩展名的窗体文件。 窗体文件列出了窗体的类名(TForm1)以及窗体各属性的值,同时还列出了窗体中包括

的组件以及组件的属性值。用户每修改一次窗体,窗体文件都会有所反应。当然,也可直

接通过修改窗体文件来设置属性,但太过复杂,很少采用。 在窗体文件空白处右击鼠标,将打开一个快捷菜单,从中选择【View as Form】命令,

即可恢复窗体的图形化显示。

1.3代码编辑窗口

窗体设计完成后,就要开始编辑代码来响应窗体及其组件的事件。代码编辑通常在代 码编辑窗口进行。下面介绍代码编辑窗口以及如何进行代码编辑。

代码编辑窗口用来编写应用程序的代码。代码编辑窗口的标题栏显示当前单元文件的 文件名,默认名为 Unit1.pas。

代码编辑窗口分为左右两部分:左边是单元浏览器窗口,右边是单元代码窗口。单元 浏览器窗口以树形分支的形式列出了单元的构成,主要包括以下内容:

(1) 单元使用的类(如 TForm1),在树形分支中是类的数据成员和过程成员;

(2) 单元使用变量(Variables)和常量(Constants),在树形分支中是单元中使用的变量和 常量;

(3) 单元链接的单元(Uses),在树形分支下是链接的单元名称。

单元代码窗口即进行代码编辑的窗口。由于一个应用程序可以有多个单元文件,所以 单元代码窗口可以有多个选项卡,每个选项卡标明一个被打开的单元文件名。

代码编辑窗口除了显示单元文件(.pas)外,也可以显示当前项目的项目文件(.DPR)。

在启动 Delphi 后代码编辑窗口通常被窗体覆盖,可以单击【View】菜单中的【Toggle

Form/Unit】命令,或单击工具栏上的【Toggle Form/Unit】按钮,以切换代码编辑器窗口和 窗体窗口。

1.4对象查看器窗口

窗体窗口的左侧为对象查看器窗口,它的功能是编辑设置窗体、组件的属性,并为窗 体、组件添加事件的响应处理过程,如图 1.3 所示。

标题栏

对象选择器

属事

性件 标标 签签

(a)(b)

图 1.3 对象查看器窗口

1.4.1对象查看器窗口的组成

对象查看器窗口由标题栏、对象选择器、属性标签和事件标签组成。

(1) 标题栏:显示“Object Inspector”字样。

(2) 对象选择器:为一个下拉列表框,列表框中是可供选择的窗体以及当前窗体上放 置的所有组件。用户可从中选择要设置属性或要添加事件的窗体或组件。

(3) 属性选项卡:即标签名为“Properties”的选项卡,用于设置当前组件的属性,它 随对象选择器中的所选组件而发生变化。属性选项卡是一个两列的表格,左列是属性标题, 右列是属性值。只有选择了属性标题,才可以设置属性值。

(4) 事件选项卡:即标签名为“Events”的选项卡,用于为当前组件添加各种响应事件 (如单击、拖曳事件等),也随对象选择器中的所选组件而发生变化。事件选项卡同样为一 个两列的表格,左列是事件名称,右列是事件处理过程,默认时事件的处理过程为空,在 空格处双击则可以为当前组件添加事件,并进入代码编辑窗口。

1.4.2设置属性

从窗体上选择组件,或从对象选择器中选择窗体或组件,使之成为当前组件后,就可以 用对象查看器窗口中的属性选项卡来设置属性了。根据属性标题的情况,设置属性可分为 4 种情况。

第一种情况是单击属性标题后,直接在属性值编辑框中输入属性的数值或字符串,如

Name、Caption、Left、Top 等属性,如图 1.4(a)所示。

注意:如果输入的属性值不符合要求,例如,在应输入数值的属性中输入了字符串,Delphi

将给出错误信息。

第二种情况是属性值由 Delphi 提供可选项。这时,用鼠标单击属性标题后,属性值马 上变成一个下拉列表框。用户可单击下拉按钮打开列表框,从中选择所需的属性值。可选 项分两种,一种是文字可选项,如 Border Style、Enabled 等属性;另一种是图形加文字形 式的可选项,如 Color、Cursor 等属性。图 1.4(b)、(c)显示了这两种可选项的属性值形式。

第三种情况是通过对话框来设置属性值。对于 Font、Color 等属性,单击属性标题后, 属性值右端会出现一个带“…”的按钮(以下简称省略号按钮),单击该按钮,即可打开一 个相应的对话框,在对话框中选择所需值,即可设置属性值,如图 1.4(d)所示。

(a)(b)(c)(d)

图 1.4 对象查看器窗口的属性选项卡

第四种情况是属性带有子属性。在这种属性的属性标题前,一般会有一个“+”号,单 击该“+”号,将可以展开子属性,同时“+”号变成“-”号。此时即可依次对各子属性进 行设置,如图 1.4(d)所示。

1.4.3添加事件

从窗体上选择一个组件,或从对象选择器中选择一个窗体或组件,使之成为当前组件, 就可以用对象查看器窗口的事件选项卡来添加事件了。

添加事件的过程一般是选定组件后,单击对象查看器窗口的事件选项卡中要添加的事 件名称,再在其右侧输入事件的响应函数名称,然后回车即可。

提示:如果单击要添加的事件后,在其右侧编辑框中双击鼠标,将为事件采用默认事件处 理过程名,同时进入代码编辑窗口。

默认事件处理过程名是组件名和事件名去除“On”后合并而成的字符串,如 Button1

组件的 OnClick 事件的默认事件处理过程名是 Button1Click。

1.5项目管理器

Delphi 用项目(Project)来管理用户开发的应用程序中的各个文件,有序地管理可以极 大地提高应用程序开发的质量和速度。

大多数情况下,一个应用程序由一个项目构成,但有时也可以是包括多个项目的项目 组,甚至可以由多个项目组构成。例如,创建一个有两个项目的应用程序,其中一个用来 创建应用程序所需的动态链接库,而另一个则用来产生应用程序的可执行文件。

1.5.1项目组成

Delphi 为每个项目建立了相当数目的文件。这些文件中,一部分是在设计阶段产生的, 如项目文件(.DPR)、单元文件(.PAS)和窗体文件(.DFM)等。还有一些则是在编译阶段产生 的,如对象映射文件(.DSM)、编译单元文件(.DCU)等。当然,项目中还包括一些非 Delphi 生成的文件,如位图、图标、鼠标指针等资源文件。

这些文件一部分要由用户保存时命名。一部分文件由 Delphi 自动产生,这些文件的命 名主要取决于用户为项目和窗体所取的名称以及 Delphi 和系统欲定义的文件扩展名。这些 文件构成了一个完整项目,但常用的文件并不多,主要是项目文件(.DPR)、单元文件(.PAS)、 窗体文件(.DFM)以及一些资源文件。前面已经介绍了窗体文件,这里着重介绍单元文件和 项目文件。

1. 单元文件

单元文件是组成应用源代码的主要部分,无论是窗体事件处理过程还是单独的源代码 都保存在单元文件中。

单元文件可以分为两种:有窗体文件和无窗体文件。每当用户在项目中新建一个窗体, 例如使用【File】菜单的【New Form】命令新建窗体,都会自动产生一个单元文件。如果 用户需要产生一个无窗体文件,可以使用【File】菜单中的【New Unit】命令。

下面给出一个典型的有窗体的单元文件的结构。

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm) Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

end.

代码首句指出了单元名,单元名必须与单元文件名保持一致。如果保存时文件名变为 “Myunit.pas”,则首句相应变为:

unit Myunit

代码中的“uses”语句指出了单元文件在编译时要链接哪些单元,如 Windows、Messages、 SysUtils、Classes、Graphics、Controls、Forms、Dialogs、StdCtrls 等,因为这些单元中包含 了编程中所调用的一些函数、对象等。

“type”语句为窗体的类声明。类声明中包括了窗体中的组件和事件响应过程名。如 语句“Button1: TButton;”指出了组件类型(TButton)和组件的 Name 属性(Button1),除处理 Name 属性外,设置其他属性不会影响单元文件源代码。

添加新的事件处理过程对单元文件的影响最大,每为一个事件定义一个处理过程,窗 体的类型定义下就会多出一行,执行部分中就会加入一个空白处理过程,窗体文件中也会 相应存入一些信息。例如,上面的“type”语句下定义了一个处理过程。

procedure TForm1.Button1Click(Sender: TObject);

而在实现部分(implementation)中,出现了一个空白处理过程。

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

用户可在“begin”和“end”之间添加自己的事件处理代码。

2. 项目文件

项目文件对应用至关重要。它由 Delphi 自动建立,一般用户不需要改变它。项目文件 是真正意义上的 Pascal 源代码文件。它描述了整个应用程序的结构及启动代码:

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin

Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;

end.

用户可以通过【Project】菜单的【View Source】命令来查看项目文件。 上面的代码首行给出了项目名称:

program Project1;

“uses”语句中列出了组成项目的单元文件,其中有些单元文件还有相应的窗体文件, 编译项目时,Delphi 将首先编译各个单元文件及其相应的窗体文件,然后再将其链接成可 执行文件。例如:

Unit1 in 'Unit1.pas' {Form1};

该语句说明项目包含了单元文件“unit1.pas”,而后面的括号对“{Form1}”则说明单 元文件有相应的窗体文件“Form1.dfm”。

接下来是编译指令“{$R *.RES}”,表示把项目中所有资源文件全部包括进来。“begin” 和“end”之间的代码段所起的作用是初始化应用程序、创建表单和启动应用程序。

1.5.2项目管理器

使用项目管理器可以了解项目的构成,以方便地对项目进行管理。 选择【View】菜单的【Project Manager】命令,可以打开项目管理器窗口——【Project

Manager】窗口,如图 1.5 所示。它用来管理当前项目中的组成文件。在项目管理器中列出 了当前项目中的各个单元文件和窗体文件,用户可以对它们进行操作。

图 1.5 项目管理器

项目管理器由标题栏、工具栏、项目显示窗口和状态栏 4 部分组成。

1. 标题栏

标题栏列出了项目管理器的英文名称“Project Manager”。

2. 工具栏

工具栏中包含一个 Project 下拉列表框(从项目中选择需管理的项目)以及 3 个快捷按 钮:【New】按钮(向项目组中新增项目)、【Remove】按钮(从项目组中删除选定项目)和

【Activate】按钮(激活项目)。

3. 项目显示窗口

项目管理器根据项目文件中的内容,在项目显示窗口中列出组成项目的所有窗体文件 和单元文件(【Files】列)以及它们的路径(【Path】列)。注意:项目管理器只列出 Delphi 自 己添加的文件,用户手动添加的文件在项目管理器中得不到反映。

4. 状态栏

默认情况下,状态栏是不可见的。如果要显示状态栏,可以在窗口中单击右键,打开 一个快捷菜单,从中选取【Status Bar】命令。状态栏显示的是项目显示窗口中当前文件的 完整路径。

下面介绍如何用项目管理器来进行项目管理。项目管理器的作用主要是用来向应用程

序中新增项目或项目组,以及从应用程序中删除项目或项目组。另外,利用项目管理器还 可以激活项目组中的某个项目为当前项目。如果要向应用程序中新增项目或项目组,执行 如下操作。

(1) 单击工具栏上的【New】按钮,打开【New Items】对话框,打开【New】选项卡, 如图 1.6 所示。

(2) 执行如下操作之一:

图 1.6 【New Items】对话框

① 如果要新增项目,单击【Application】图标;

② 如果要新增项目组,单击【Project Group】图标。 (3) 单击【OK】按钮。 如果要从应用程序中删除项目或项目组,可以在项目管理器中选定要删除的项目或项

目组,然后单击工具栏上的【Remove】按钮。

对于有多个项目或项目组的应用程序而言,经常需要使用激活功能。例如,应用程序 包括 Project1、Project2 两个项目。如果当前项目为 Project2,而想编辑 Project1,此时就应 激活 Project1。方法是选定 Project1 后单击【Activate】按钮。

1.5.3项目管理

前面介绍了如何利用项目管理器新增、删除、激活项目及项目组,下面介绍如何向某 个项目中增加、删除文件,以及如何保存项目中的文件。

1. 给项目增加文件

给项目增加文件可分为两种情况:第一种情况是向项目中增加新的窗体或单元文件, 第二种情况是向项目中增加已经存在的文件。对于第一种情况,可以单击【File】菜单中的

【New】级联菜单下的【Form】命令或【Unit】命令。 直接单击工具栏中【New Form】按钮,可往项目中增加一个新窗体。 向项目中新增窗体或单元文件后,Delphi 会自动修改项目文件中的“uses”语句,将

新增加的窗体或单元文件添进来。

对于第二种情况,向项目中增加已经存在的文件,可以执行如下操作。

(1) 单击【Project】菜单中的【Add to Project】命令,或单击工具栏上的【Add File to

Project】按钮,打开【Add to Project】对话框,如图 1.7 所示。

图 1.7 【Add to Project】对话框

(2) 选择所需的文件,例如,选择单元文件“Unit5_1.pas”。

(3) 单击【打开】按钮。

这样,就将选定文件添加到当前项目中。此时 Delphi 并没有把该文件移动到项目文件 所在的目录中,也没有将该文件复制到项目所在的目录中,只是在项目文件的“uses”语 句中声明了所增加的文件的名称及其目录。这样,编译项目时,就能链接该文件。

2. 从项目中删除文件

从项目中删除文件时,Delphi 并没有将文件从硬盘上删除,只是修改了项目文件中的 “uses”语句,将要删除的文件从该语句中去掉而已。如果要从项目中删除文件,可执行 如下操作。

(1) 单击【Project】菜单中的【Remove From Project】命令,或单击工具栏上的【Remove

File From Project】按钮,打开【Remove From Project】对话框,如图 1.8(a)所示。

(2) 选择要删除的文件。

(3) 单击【OK】按钮即可。 另外,可利用项目管理器从项目中删除文件,方法是:在项目管理器中,右击要删除

的单元文件,打开一个快捷菜单,从中选择【Remove From Project】命令,如图 1.8(b)所示。

(a)(b)

图 1.8 【Remove From Project】对话框

3. 查看文件

如果要查看项目中的某窗体或文件的源代码,根据需要,可以采取如下方法。

(1) 如果要查看某个单元文件的源代码,可以单击【View】菜单中的【Units】命令或 工具栏中的【View Unit】按钮,打开【View Unit】对话框,如图 1.9 所示。然后从列表框 中选择要查看的单元文件。再单击【OK】按钮。

(2) 如果要查看某个窗体,可以单击【View】菜单中的【Forms】命令或工具栏中的【View Form】按钮,打开【View Form】对话框,如图 1.10 所示。然后从列表框中选择要查看的 窗体,再单击【OK】按钮。

(3) 打开项目管理器窗口,右击要查看的窗体或单元文件,将打开一个快捷菜单,从 中选择【Open】命令,即可查看到选定的窗体,或查看到选定单元文件的源代码。

如果当前窗口为窗体窗口或窗体对应的单元文件源代码,而用户正好想查看窗体对应 的单元文件或单元文件对应的窗体,可单击【View】菜单中的【Toggle Form/Unit】命令, 或直接在工具栏上单击【Toggle Form/Unit】按钮。

图 1.9 【View Unit】对话框图 1.10 【View Form】对话框

4. 保存项目及其文件

Delphi 提供了许多保存命令,用户可以根据需要来选择使用。

(1) 如果要保存当前文件,单击【File 】菜单中的【Save】命令,或单击工具栏上的

【Save】按钮。如果该文件是新文件,Delphi 将打开【Save As】对话框,提示用户输入新 文件名。

(2) 如果要将当前文件以新文件名存储,单击【File】菜单中的【Save As】命令,打开

【Save As】对话框,然后输入新文件名,单击【保存】按钮即可。

(3) 如果要保存项目中所有文件,单击【File】菜单中的【Save All】命令,或单击工 具栏中【Save All】按钮。如果项目中有新文件,Delphi 将打开【Save As】对话框,提示 用户输入新文件名。

(4) 如果要按新名称存储当前项目,单击【File】菜单中的【Save Project As】命令,打 开【Save Project As】对话框,然后输入新项目名,单击【保存】按钮即可。

1.5.4项目编译和运行

运行应用程序前,首先应该对应用程序进行编译。Delphi 提供了多种编译方式,供用

户在不同情况下选用。

1. 编译链接

单击【Project】菜单中的【Compile 项目名】命令,将编译当前项目自上一次编译以 来修改过的文件,并将项目中所有文件链接成可执行文件,该命令的热键为 Ctrl+F9。

项目的编译过程如下。

(1) Delphi 首先将项目中各单元文件编译成以“.dcu”为扩展名的编译单元文件。

(2) 然后开始编译项目文件。

(3) 最后将编译好的文件链接成可执行文件。

如果用户想了解 Delphi 编译过程中的信息,可执行如下操作。

(1) 单击【Tools】菜单中的【Environment Options】命令,打开【Environment Options】 对话框,并打开【Preferences】选项卡。

(2) 在【Compiling and Running】选项组中选中【Show compiler progress】复选框。 (3) 单击【OK】按钮。 这样,用户每次编译项目时,就会出现一个【Compiling】消息框,显示项目的编译过

程,如图 1.11 所示。

2. 重建项目

图 1.11 项目编译过程

重建项目的意思是指重新编译项目中的所有文件,包括单元文件和项目文件,并重新 建立生成可执行文件所需的一系列文件。当用户不能确定是否有文件被遗漏编译,或想更 新编译单元文件(.dcu)和可执行文件(.exe)时,可采取这一种编译模式。

如果要重建项目,选择【Project】菜单中的【Build <项目名>】命令即可。

3. 只编译文件

所谓只编译文件,是指只对项目中的文件进行编 译,而不链接它们。这种编译模式通常用于检查文件 中的语法错误。

如果只编译文件,可选择【Project 】菜单中的

【Syntax check <项目名>】命令。

4. 查看编译信息

编译完当前项目后,还可以单击【Project】菜单中 的【Information for <项目名>】命令,打开【Information】

消息框,查看编译后的信息,如图 1.12 所示。消息框

图 1.12 【Information】消息框

中提供了以下信息,见表 1-2。

表 1-2 【Information】消息框中的信息

提示

意义

Source compiled

被编译的源代码总数

Code size

编译后的可执行代码大小

Data size

存储全局变量所需的内存大小

Initial stack size

存储局部变量所需的内存大小

File size

编译输出文件的大小

Status 栏

显示上一次编译是否成功

5. 编译所有项目

对于有多个项目或项目组的应用程序,经常一次编译并链接所有项目,从而一次性生 成可执行文件。

要编译所有项目,单击【Project】菜单中的【Compile All Projects】命令即可。

6. 重建所有项目

重建所有项目本质上与重建项目并没有什么不同,只不过是针对多个项目操作而已。 重建所有项目使用的命令是【Project】菜单中的【Build All Projects】命令。

7. 运行

若程序没有语法错误,编译后可直接在 Delphi 集成环境中运行,运行方法是使用【Run】 菜单中的【Run】命令,或单击工具栏中的【Run】按钮,或直接按 F9 功能键。

通过简略地介绍 Delphi 集成开发环境的各个组成部分,我们对它的开发工具有了一个大 概的了解,学习了一些基本的使用方法。在 Delphi 的学习过程中,还可以通过帮助文件来解 决不懂的问题。当然,Delphi 集成开发环境是一个综合的整体,只有全面灵活地掌握和使用, 才能开发出理想高效的应用程序。

1.6Delphi 程序设计过程

Delphi 程序设计是可视化的,大多数开发的程序界面风格类似于其他各 Windows 应用 程序。在开发过程中,基本上以一个项目文件管理一组窗体单元文件,而各个窗体根据功 能需要,安排了不同的组件,运行时通过这些组件与用户交互,这些组件所要实现的功能 由其背后的事件(程序代码)实现。

在 Delphi 中创建应用程序的过程一般如下。

第 1 步:创建新的项目和窗体。 执行【File】|【New】|【Application】命令,创建新的项目和窗体。 第 2 步:在窗体中加入组件。

在组件板中选定需要的组件,然后在窗体的适当位置单击。接着可以对窗体和窗体上

的组件进行适当的安排。

第 3 步:设置窗体和组件的属性。 根据程序需求在对象编辑器中设置组件的属性,包括组件的大小、颜色、位置、标题

文字、特征等。这些属性也可以通过程序动态地设置和修改。 第 4 步:编写事件处理程序。

在对象编辑器中选择指定组件的事件项,进入代码编辑窗口,编写程序代码,以实现 相应功能。

第 5 步:保存项目文件和单元文件。

使用【File】菜单中的【Save All】命令,保存项目、单元等文件。 第 6 步:编译、调试和运行程序。 使用【Run】菜单中的【Run】命令,运行应用程序。若出现问题或程序的运行结果达

不到预期的结果,还可以使用 Delphi 提供的调试器来调试和修改,直到满意为止。

【例 1.1】 本例介绍如何在 Delphi 集成开发环境中编写 Windows 应用程序。程序实现的 功能是:在应用程序的窗体中显示时钟。

具体实现过程如下:

1) 进入 Delphi 开发环境

可以通过 Windows 的【开始】菜单来运行 Delphi,如:【开始】|【程序】|【Borland

Delphi 7】|【Delphi 7】。

2) 创建项目 为了集中管理各个文件,可以创建一个“项目”进行统一管理。 Ⅰ) 创建项目文件夹

为了单独存放与项目有关的文件,先创建一个文件夹。可以通过 Windows 环境中的资 源管理器来实现,如:C:\Mypro。

Ⅱ) 创建一个新的项目

在 Delphi 集成开发环境中,单击【File】|【New】|【Application】命令,创建一个新 的应用程序,Delphi 会自动创建项目文件及相关的其他文件。

Ⅲ) 保存项目及相关文件

使用【File】菜单中的【Save All】命令将保存与项目有关的所有文件。此时首先会弹 出【Save Unit1 As】对话框,定位到目录“C:\Mypro”后,输入文件名“Unit1_1”,单击

【确定】按钮,接着会弹出【Save Project1 As】对话框。这时目录自动定位到“C:\Mypro” 中,输入文件名“Project1_1”,单击【确定】按钮。

3) 向窗体中添加组件

为了在 Form1 窗体中显示文字,可以添加一个标签(Label)组件。标签组件是组件板的 Standard 组件页中的第 4 个组件。可以将鼠标指针移动到 Standard 组件页中的第 4 个组件 上,稍停一下后会出现一个内容显示为“Label”的提示窗口;单击鼠标左键,然后移动鼠 标指针到 Form1 窗体中再单击左键,标签组件就被添加到窗体中了。

为了使每隔 1 秒钟将显示的内容改变一次,采用同样的方法,向 Form1 窗体中添加一 个定时器(Timer)组件。定时器组件是 System 组件页中的第 1 个组件。

在程序运行的过程中,定时器组件并不在窗体中显示,所以可以将定时器组件随便放

置在窗体中的某个位置。

为了可以关闭显示,添加一个按钮(Button)组件,按钮组件在 Standard 组件页中的第 7

个位置,采用同样方法将其添加到窗体中。

4) 设置组件属性

在 Form1 窗体中选中标签组件,然后在对象编辑器窗口中对标签组件的主要属性进行 设置具体见表 1-3。

表 1-3 例 1.1 中标签组件的属性设置

属性

属 性 值

Alignment

taCenter

AutoSize

False

Caption

(空串,删除原 Label1)

Font

黑体,粗体,初号

Name

Label1

注意:改变字体属性时,可以单击组合框右面的省略号按钮,在弹出的【字体】对话框中

设置字体、大小和颜色等。也可以展开 Font 属性,对子属性进行设置。

设置好组件的属性后。可以改变窗体的大小:将鼠标指针移到窗体的边缘,鼠标的形 状会变成双箭头模式,然后按下鼠标左键进行拖动就可以改变窗体的大小。

然后,再在 Form1 窗体中选中按钮组件,在对象编辑器窗口中将按钮的 Caption 属性 设置为“开/关”。

定制好的窗体如图 1.13(a)所示。

5) 添加代码

(1) 在 Form1 窗体中选中定时器组件,然后选中对象编辑器窗口中的事件(Events)页, 为定时器组件添加 OnTimer 事件的处理过程。只要双击 OnTimer 栏右边的组合框,系统就 会自动添加该事件的处理过程,并自动定位到相应的代码处。

在 TForm1.Timer1Timer 处理过程中添加以下代码。

procedure TForm1.Timer1Timer(Sender: TObject);

var// 变量说明

DateTime : TDateTime;

str : string;

begin

DateTime := Time;// 取得当前日期和时间

str := TimeToStr(DateTime);// 转换时间成字符串

Label1.Caption := str;// 显示时间字符

{ 注意:这些语句也可直接用下列语句代替:

label1.Caption := TimeToStr(Time); }

end;

(2) 同样,在 Form1 窗体中选中按钮组件,然后选中对象编辑器窗口中的 Events 页, 为按钮组件添加单击(OnClick)事件的处理过程(即运行时,单击按钮所要运行的功能程序)。 双击 OnClick 栏右边的组合框,进入代码编辑器,给按钮组件添加单击事件。

procedure TForm1.Button1Click(Sender: TObject);

begin

Label1.Visible:=not Label1.Visible;

end;

6) 运行程序 通过【Run】菜单的【Run】命令运行程序。如果程序没有编译和链接,则程序在运行

前系统会自动进行编译和链接。运行结果如图 1.13(b)所示。

(a)(b)

图 1.13 显示时钟例程

说明:例 1.1 通过定时器每秒执行一次TForm1.Timer1Timer处理过程,在该处理过程中, 通过“Label1.Caption := str;”语句将组件Label1 的Caption属性改变了,也就是将窗体 中显示的内容每秒改变了一次。而按钮的单击事件是通过“Label1.Visible:=not Label1.Visible;”语句将Label1 组件的Visible属性在True和False中间切换,以达到开关 目的。程序中“//”和“{}”符号代表注释文本。

读者可以自己尝试进行以下工作。

(1) 改变窗体中显示内容交替的频率。可以通过设置定时器的 Interval 属性来实现。

(2) 改变窗体标题栏的内容。如可以将 Form1 的 Caption 属性由“Form1”改为“小闹铃”。

(3) 改变窗体的大小、显示内容、字体和颜色等。

(4) 有兴趣的读者还可以让程序在运行过程中发出声音,这样提示的效果会更明显。 可以在 Tform1.Timer1Timer 过程的末尾添加一条语句实现。

procedure Tform1.Ttimer1Timer(Sender:TObject);

begin

Beep;//发声

End;

1.7实验

在 Delphi 环境中编写程序

【实验目的】

熟悉 Delphi 集成开发环境,掌握编辑、编译、运行程序的操作。

【实验要求】 创建控制台应用程序,输入程序源程序,编译、运行程序,发现并改正错误。

【示范模仿】 给出下列程序,将它编辑、保存、编译和运行。 程序功能是读入一个整数 n,求 0~n 间的所有偶数。源程序如下:

program Project1_ex1;

{$APPTYPE CONSOLE}//进入控制台方式,即非窗体方式

var n,s:integer;

begin

write ('n=?');//在屏幕上提示“n=?”

readln(n);//在屏幕上等待键盘输入到 n 中

S:=1;

while s

if s mod 2=0 then writeln(s);//s 除 2 取余,等于 0 时 s 为偶数

s:=s+1;

end;

readln;//等待按任意键

end.

(1) 进入 Delphi 开发环境 单击Windows的【开始】菜单【开始】→【程序】→【Borland Delphi 7】→【Delphi 7】。 (2) 创建项目

缺省时 Delphi 创建了一个项目和一个窗体单元文件,我们这里直接在项目文件中编写 代码,所以不需要窗体单元文件,在代码编辑窗口中右击 Unit1 标签,选择快捷菜单中【Close Page】选项关闭窗体单元文件。

(3) 编写代码

在工具栏中选择【View Unit】按钮,在打开的对话框中选择“Project1”,在代码编辑 窗口中打开“Project1”,将上述源程序输入好。

(4) 保存程序

单击【File】菜单中【Save All】选项,在保存对话框中选择文件夹并输入文件名,单 击【保存】按钮,保存程序。

(5) 编译程序

单击【Project】菜单,选择【Compile 项目名】命令 项,进行编译,如果程序编写有语法错误,系统会将光标 会在代码编辑窗口中停在错误处,一一修改后,重新进行 编译,直到编译通过。

(6) 运行程序 通过【Run】菜单的【Run】命令运行程序。

程序运行结果如图 1.14。

【学以致用】 编写下列程序,将它编辑、保存、编译和运行。

图 1.14 实验 1-1 界面

程序功能是读入一个整数 n,求 0~n 间的所有奇数。

【探索求新】

编写程序,功能是读入一个整数 n,求 0~n 间的所有素数。

【实验报告】 记录各训练任务的内容,记录完成实验任务的步骤,以及完成情况的小结。 写上实验成功或失败的原因,实验后的心得体会、建议等。

习题

1. 填空题

(1) Delphi 是一个集成开发环境,从 、 、 ,到最后形成发布 程序的全部工作都可以在这个集成环境中完成。

(2) 在 Delphi 集成环境的主要组成部分中有许多功能强大的工具,如: 、

、 、 、 工具等。

(3) Delphi 集成开发环境的界面分为 4 个部分,分别是 、 、 和 。

(4) 对象查看器的功能是 ,并 。

(5) Delphi 主窗口由 、 、 和 组成,它是打开其他窗 口和退出 Delphi 集成环境的主要界面。

2. 选择题

(1) 对象查看器由 组成。

A. 标题栏、菜单栏、属性标签和事件标签

B. 标题栏、菜单栏、对象选择器和事件标签

C. 标题栏、菜单栏、对象选择器和属性标签

D. 标题栏、对象选择器、属性标签和事件标签

(2) Delphi 用 来管理用户开发的应用程序中的各个文件,有序地管理可以极大 地提高应用程序开发的质量和速度。

A. 单元B. 组件C. 属性D. 项目

(3) 用来编写应用程序的代码。

A. 调试器窗口B. 代码编辑窗口

C. 报表生成器窗口D. 数据库桌面窗口

(4) 代码编辑窗口分为左、右两部分: 。

A. 左边是单元代码窗口,右边是单元浏览器窗口 B. 左边是单元浏览器窗口,右边是单元代码窗口 C. 左边是单元调试窗口,右边是单元浏览器窗口 D. 左边是单元浏览器窗口,右边是单元调试窗口

(5) 属性选项卡即标签名为“Properties”的选项卡,用于设置当前组件的属性,属性

选项卡是一个两列的表格, 。

A. 左列是属性标题,右列是属性值 B. 左列是组件名称,右列是事件名 C. 左列是属性标题,右列是事件名 D. 左列是组件名称,右列是属性值

(6) 事件选项卡即标签名为“Events”的选项卡,用于为当前组件添加各种响应事件(如 单击、拖曳事件等),它随对象选择器中的所选组件而发生变化。事件选项卡为一个两列的 表格, ,默认时右列为空,在空格处双击则可以为当前组件添加事件,并进入代 码编辑器窗口。

A. 左列是属性标题,右列是属性值

B. 左列是组件名称,右列是事件名

C. 左列是事件名称,右列是事件处理过程

D. 左列是组件名称,右列是属性值

(7) 在项目管理器中列出了当前项目中的各个 ,用户可以对它们进行操作。

A. 项目文件和单元文件B. 项目文件和窗体文件

C. 项目文件和对象映射文件D. 单元