Delphi 的pas文件中可以有initialization和finalization两个关键字,
1。initialization关键字:
在initialization关键字到finalization关键字之间的代码会在Form加载到内存时执行。利用这个可以对全局变量或局部变量进行初始化操作。(全局变量就是本Form之外的类或Form都可以使用的变量,全局变量在interface部分中用var定义。局部变量就是只能在本Form中使用的变量,局部变量在implementation部分用var定义)。
2。finalization关键字:
finalization关键字到文件的结束关键字"end."之间的代码会在释放Form的时候执行,利用这个可以释放在initialization中分配给对象的内存。
S.
initialization
if not Assigned(HDSDM) then
HDSDM := THDSDM.Create(nil);
finalization
if Assigned(HDSDM) then
FreeAndNil(HDSDM);
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{私有声明}
public
{公有声明}
end;
var Form1: TForm1;
implementation
{$R *.DFM}
initialization
{在这里进行初始化}
finalization
{在这里进行销解化}
//初始化块和销解化块都不是必须出现的
end.
关键字initialization标志着初始化块的开始,当一个编译后的工程运行时,每个单元的初始化块被首先执行,至于那个单元首先被初始化,则取决于被uses的顺序,先被uses的就先被初始化。初始化块和begin...end.块不能同时出现,因此,建议使用初始化块,以便也能使用销解化块的功能。
销解化块只能伴随初始化会出现,但初始化块可以单独出现。销解化块在程序结束前被自动执行,其执行顺序与该单元被uses的顺序相反。要注意的是,初始化块可能在完全被执行之前程序就因某种错误而被中止了,但Delphi确保证销解化块被执行,因此销解块中的代码必须考虑未完全初始化的情况。