initialization和finalization

本文介绍Delphi中initialization和finalization的作用与用法。initialization用于Form加载时的初始化工作,如全局变量设置;finalization则在Form释放时执行,常用于释放资源。两者确保了程序资源的有效管理和生命周期的正确控制。
部署运行你感兴趣的模型镜像

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

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值