单元文件是Pascal源文件,扩展名为.pas。
有三种类型的单元文件:
- 窗体/数据模块和框架的单元文件(form/data module and frame units),一般由Delphi自动生成。
- 组件的单元文件(component units),由您或者Delphi生成。
- 通用的单元文件(general-purpose units),有您创建。
下面让我们看看基本的Pascal单元文件结构是如何的?
Step1、在主菜单上选择【File | New | Unit】,Delphi将创建一个新的单元,并在Code Editor中显示出。
Step2、让我们来看看一个最简单的pascal单元,包括了四个关键字unit、interface、implementation和end;
比较全的单元如下,请看注释:
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单元结束
用来执行启动和清理的代码,初始化中的任何代码在其单元载入内存时都要被执行,结束段中的任何代码在单元从内存中清理前都要被执行。
可以只有一个初始化段,但不能只有结束段,而没有初始化段。