Delphi项目构成之单元文件PAS

单元文件是Pascal源文件,扩展名为.pas

有三种类型的单元文件:

  1. 窗体/数据模块和框架的单元文件(form/data module and frame units),一般由Delphi自动生成。
  2. 组件的单元文件(component units),由您或者Delphi生成。
  3. 通用的单元文件(general-purpose units),有您创建。

下面让我们看看基本的Pascal单元文件结构是如何的?

Step1、在主菜单上选择【File | New | Unit】,Delphi将创建一个新的单元,并在Code Editor中显示出。

Delphi项目构成之单元文件PAS

Step2、让我们来看看一个最简单的pascal单元,包括了四个关键字unitinterfaceimplementationend

Delphi项目构成之单元文件PAS

比较全的单元如下,请看注释:

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
unit Unit1;
 
interface
 
uses            { List of units goes here }
  Windows, Messages,
  SysUtils, Variants,
  Classes, Graphics,
  Controls, Forms, Dialogs;
 
                { Interface section goes here }
 
type            { type关键字用来声明一个新的类型}
  TMyArray = array[0..19] of Byte;
                { 声明TMyArray用来代替array[0..19] of Byte}
const           { const关键字用来声明常量}
  AppCation = 'Hello World';
                { AppCation由于在interface段声明,它在单元的任何地方都可以用}
var             { var关键字用来声明变量,也分interface段和implementation段}
  X: Integer;
  MyArry: TMyArray;
                { MyArray为刚才定义的TMyArray新类型}
 
  procedure DoSomething;
                { 声明一个DoSomething过程}
 
implementation
uses            { List of units goes here }
  SysUtils, Variants;
var
  ObjList: TObjectList;
const           { BaseX,BaseY由于在implementation段声明,只能在单元内使用}
  BaseX = 20;
  BaseY = 200;
                { 实现interface段声明的DoSomething过程}
  procedure DoSomething;
  begin
                { Code for DoSomething goes here.}
  end;
                 //C++风格的注释,只能用于单行注释
                (*
                  相同类型注释不能嵌套
                *)
                {
                 推荐使用的注释符号
                }
 
                { Implementation section goes here }
 
initialization
                { Initialization section goes here }
  ObjList := TObjectList.Create;
finalization
                { Finalization section goes here }
  FreeAndNil(ObjList);
end.

uses单元引用

一个单元引用的外部单元清单,其中每个单元必须用逗号分开,最后一个单元必须加分号,分号表示该uses清单的结束。

interface接口段

用来生命这个单元的输出标识符,即能被其他单元访问的项。接口段以interface开始,以implementation结束。

implementation执行段

执行段以implementation开始,以下一个关键字结束,下一个关键字通常就是单元的最后关键字end。但在有初始化的单元中,下一个关键就是initialization关键字。

以上三个部分是unit单元必须要的。接下来两个关键字部分是可选的。

initialization单元初始化和finalizaiton单元结束

用来执行启动和清理的代码,初始化中的任何代码在其单元载入内存时都要被执行,结束段中的任何代码在单元从内存中清理前都要被执行。

可以只有一个初始化段,但不能只有结束段,而没有初始化段。

上一篇:Spring 拦截器实现+后台原理(HandlerInterceptor)


下一篇:设置Delphi默认按utf8格式保存单元文件