在 Delphi 中,一个单元的 initialization
部分在该单元首次被使用时执行一次。具体来说,initialization
部分是在单元的初始化过程中执行的,通常是在以下几种情况下首次触发:
-
单元被显式引用:当你在代码中使用了某个单元(例如通过
uses
子句)时,如果该单元尚未被加载和初始化,那么它的initialization
部分将会被执行。 -
程序启动时自动加载的单元:如果单元是在项目的
.dpr
文件(项目文件)中被引用,那么在程序启动时,这些单元会自动被加载和初始化,其initialization
部分也会被执行。
重要的是,initialization
部分只会在该单元首次加载时执行一次。无论该单元在程序中被引用多少次,或者程序中有多少个其他单元引用了它,initialization
部分的代码都只会执行一次。
相对应的,还有一个 finalization
部分,它在单元被卸载时执行,通常用于清理资源或执行其他收尾工作。finalization
部分同样只会执行一次,在单位被卸载时触发。
以下是一个简单的例子来说明这一点:
unit MyUnit;
interface
uses
SysUtils;
implementation
initialization
Writeln('MyUnit initialization');
finalization
Writeln('MyUnit finalization');
end.
如果你在不同的单元或者程序文件中引用 MyUnit
,你会发现 MyUnit initialization
只会输出一次,即首次加载该单元时。同样地,MyUnit finalization
也只会在程序结束时执行一次。
本文来自博客园,作者:del88,转载请注明原文链接:https://www.cnblogs.com/del88/p/18585384
分类:
Delphi基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2012-12-04 Dbgrideh 表格的行高
2012-12-04 Dbgrideh 字体垂直居中
2011-12-04 去掉MainMenu自动添加的菜单快捷键