鱼C论坛

 找回密码
 立即注册
查看: 3962|回复: 12

[技术交流] Delphi的项目组成详解

[复制链接]
发表于 2013-7-1 20:58:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Delphi的项目组成详解

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

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

1. 单元文件

单元文件是组成应用源代码的主要部分,无论是窗体事件处理过程还是单独的源代码都保存在单元文件中。单元文件可以分为两种:有窗体文件和无窗体文件。每当用户在项目中新建一个窗体,例如使用【File】菜单的【New Form】命令新建窗体,都会自动产生一个单元文件。

如果用户需要产生一个无窗体文件,可以使用【File】菜单中的【New Unit】命令。下面给出一个典型的有窗体的单元文件的结构。
Delphi的项目组成

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
        {code}
end;

end.
代码首句指出了单元名,单元名必须与单元文件名保持一致。如果保存时文件名变为“FishC.pas”,则首句相应变为:
unit FishC
代码中的“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
        {code}
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”之间的代码段所起的作用是初始化应用程序、创建表单和启动应用程序。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-1 21:22:48 | 显示全部楼层
近期正在学习delphi 谢谢鱼哥的倾情奉献!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-1 22:07:26 | 显示全部楼层
不知不觉到了下半年的第一天,原来自己学习数据结构已经有半年了,希望自己更加努力,学得更好!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-1 22:29:43 | 显示全部楼层
支持,,, :lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-3 19:55:14 | 显示全部楼层
看看,回帖支持下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-4 18:58:12 | 显示全部楼层
再看看,回帖支持支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-5 06:20:13 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-6 09:07:20 | 显示全部楼层
嗯,正在学习中,支持一下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-14 01:37:54 | 显示全部楼层
谢谢楼主分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-15 00:27:34 | 显示全部楼层
祝鱼C论坛红红火火!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-4 16:27:41 | 显示全部楼层
对我们这些初学者有用哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-14 16:31:02 | 显示全部楼层
谢谢楼主分享!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-2 01:01:15 | 显示全部楼层
逛一逛,瞧一瞧,顶一顶,没坏处
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 21:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表