常用函数
1.Assigned函数
--->该函数用于测试指定的对象是否为空。
语法 function Assigned(const P):Boolean;
说明:
- Assigned 用来确定引用的指针或过程是否为空(nil),这个P必须是指针或者引用过程类型的变量;
- Assigned (P) 对应指针变量的测试 P<>nil,过程变量的 @P<>nil;
- 如果P为nil,Assigned返回False,否则返回True。
if Assigned(AVS) then //如果AVS存在且不为Nil,将执行下面的代码
MList.Lines.Add('类名为'+AVS.ClassName+'的对象存在!')
else
MList.Lines.Add('对象为空!');
典型应用:
if not Assigned(Form1) then
begin
Form1:= TForm1.Create(Application);
Form1.ShowModal;
Form1.Free;
end;
以上创建之后的窗体采用 Form1.Free 释放,实际上窗体还是存在的,并没有从内存中完全释放。
两种方法纠正:
1、在Form1窗体中 FormDestroy 销毁事件中 加入 Form1:=nil
2、把Form1.Free 换成 FreeAndNil(Form1);
2.FreeAndNil过程
--->该函数用于释放指定对象,并设置其为空。
语法
procedure FreeAndNil(var Obj);
说明:
如果某个对象已经没有任何价值,可以将其释放,通常使用该对象的Free方法来完成该操作。
- Free方法将销毁对象,并且该对象销段后将不能被继续引用;
- FreeAndNil函数将对象释放后,该对象仍然存在,不过其值为Nil,如果需要继续使用,则可以再次调用构造函数来为其分配空间。
if Assigned(Form1) then
begin
Form1.close;
Form1:=nil;
end;
//或:
if Assigned(Form1) then
begin
Form1.close;
FreeAndNil(Form1);
end;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?