以下图单元文件作为参考:

1、库单元文件头:
其中声明了库单元的名字。
2、interface部分:
由保留字interface开始,结束于保留字implementation,它用来声明引用的单元、常量、数据类型、变量、过程和函数。
在interface部分声明的变量、常量、数据类型、过程、函数都可以供外部引用,对整个程序而言是共有的;也就是说,对于所有引用该单元的单元来说,这些声明都是可见和可访问的。
在interface部分,只需写出过程和函数的首部,具体的定义是在下面的implementation部分实现。
interface部分又可分为多个可选部分,分别为单元引入部分(uses),常量说明部分,类型说明部分,变量说明部分,过程和函数声明部分。
3、implementation部分:
implementation部分分为两部分。一部分是声明部分,包括单元引用、常量、类型、变量、过程和函数的声明,这一点和interface部分相似。
区别有两点:
1)、在implementation部分声明的只对本单元是公共的,可见的,其他单元即使引用了该单元,也不能访问它们。
2)、在implementation部分声明的过程和函数,不需要遵循先声明后定义的规则,而可以直接写出过程和函数的定义。另一部分是在interface部分声明的过程和函数的定义。
4、initialization部分:
用于初始化该库单元,此处的代码最先执行。
如果多个库单元中包含initialization部分那么它们的执行顺序就和Program的uses部分引用单元的出现顺序是一致的。
5、finalization部分:
通常用于释放initialization部分分配的资源。
如果多个库单元中包含finalization部分,其执行顺序和initialization部分正好相反。
6、Sender参数:
看上图程序代码发现事件处理程序的参数中,至少含有一个参数Sender,它代表触发事件处理程序的组件,有了Sender参数,可以使多个组件共用相同的事件处理程序。
7、self参数:
self是指所编的程序范围是在哪一个类中,Delphi中大都在窗体范围内编程,因此self即指窗体,如果在编写一个类或是一个组件,则self指该类或该组件。
我们在过程和函数的声明中可以看出self是代表哪个组件,即self代表"."号之前的组件。
另外应注意self只能用在类方法中,而不能用在过程或函数中。如下列是错误的:
function a1(b: integer): integer; begin button := TButton.Create(self); end;
8、Parent和Owner的区别:
1)、Parent属性是指组件的包容器,组件只能在此范围内显示和移动。
2)、Owner属性是指组件的所有者,它负责组件的创建和释放。Create方法应带有表示组件所有者的参数。
3)、它们都是运行阶段的属性,只能通过代码设置。




