单元文件是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单元结束
用来执行启动和清理的代码,初始化中的任何代码在其单元载入内存时都要被执行,结束段中的任何代码在单元从内存中清理前都要被执行。
可以只有一个初始化段,但不能只有结束段,而没有初始化段。