initialization和finalization

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确保证销解化块被执行,因此销解块中的代码必须考虑未完全初始化的情况。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值