第二讲 Delphi项目结构
1
Delphi的项目结构
Delphi开发的应用程序是以项目的形式来 组织的,而Delphi的项目结构可以分为两 大类:
GUI(Graphic User Interface)模式 Console模式(纯文本)
一个GUI模式项目(Project)可以有多个窗 体(Form)与多个程序单元(Unit)。
2
2.1 GUI模式项目结构
当打开
Delphi时,系统会创建一个默认的 项目,该项目包含一个默认的单元(unit) 和窗体(form),GUI模式的项目必须在有 窗体的状态下提供给用户操作的平台。 如果不改变项目的主窗体,通常GUI会以 form1作为主窗体,在项目被运行时,首 先看到的就是主窗体。
3
2.1 GUI模式项目结构
然而项目由开始运行到主窗体显示出来, 期间执行了一部分程序,而并不是一开 始就执行主窗体(form1)对应的单元文件 (unit1)。 GUI项目的整体结构:
4
GUI项目的整体结构:
Project1.dpr 项目
结论:一个项目可以有多 个窗体与多个单元文件, 通常一个单元文件对应一 个窗体,在单元文件中是 对应该窗体的代码,但是 也可以有只有代码没有窗 体的单元文件。
button
******* ******* ******* 程序 .pas
Button Label
******* ******* ******* 程序 .pas
******* ******* ******* 程序 .pas unit3
表单 .dfm unit1
表单 .dfm unit2
举例:没有窗体的单元
2.1.1项目文件(.dpr)
项目文件是一个记录了项目名称、创建主窗体 及其他自动创建的窗体的源代码的文件,扩展 名是.dpr。并以关键字program开头,因此也 称为program单元。 一个应用程序可以包括多个单元文件、窗体文 件或者资源文件,但是只有一个项目文件(工 程文件),它是应用程序的标志。
6
程序标头(heading)作为程序的开头。这个标 头就是用来标明这个程序(program)的名称。
uses子句块,列出了所有连接到这个 程序的单元(Unit)而这些单元可以被 不同的项目(project)程序所共享。 同样,每个单元(Unit)里通常也都有各 自的uses子句。这些uses子句提供有 关模块的附属关系给程序编译器
语句区 ,这个区块是整个项目程序的 进入点,当我们执行一个项目时,它 会由这一区的“begin”进入程序
2.1.2单元文件(.pas)
单元文件用来保存窗体对应的Delphi
程序的源代码,扩 展名为.pas。并以关键字unit开头,因此又称为unit单 元。 一个单元文件的内部是由以下几个区块所组成,即: 单元标头、interface区、initialization区、 interface initialization implementation区、finalization区和end区。 单元标头:
用来标明这个Unit的名称,是这个单元程序的标头。以项目中 第一个单元默认的标头,“Unit Unit1;”而言,前面的“Unit” 是保留字,后面的“Unit1”才是这个单元的标头名称。
8
2.1.2单元文件
interface区
interf
ace区在Unit结构里,用来作声明和定 义部分,而且本区的内容可以被其他的单元 所使用,因此它是一个公开的区块。除了声 明和定义之外,这里也包含了Uses子句 在interface区里有“Uses子句”紧接在“标 头” 之下,然后还有const (costants)、 type及procedure(或function)这几个区块。
9
2.1.2单元文件
Uses子句区块:
放在这个区块里的内容是注明这个单元〔Unit〕 本身内部所使用到的“资源文件” 。
const(costants)区块:用来定义常量 type区块:用来声明类型(包含类:class) procedure(或function)区块
用来声明procedure(或function),只写 procedure(或function)的标题而已,具体实现 要在implementation区编写。
var(variables)区块:用来声明变量。
10
2.1.2单元文件
implementation区
该区的开头是保留字:implementation,而 这个区块的范围,就是从implementation这 个保留字开始,直到接下来的一个区块的保 留字之前。如果该单元有initialization区,那 就是到initiali