其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

Delphi程序使用资源的释放


发布日期:2018年07月26日
 
Delphi程序使用资源的释放
写出一个不会造成资源分配崩溃的Delphi应用程序的关键是确保如果程序中分配了资源即使当故障发生程序也应能释放占用的资源

文件内存WINDOWS资源和对象是一些必须时时加以注意的需确保释放的资源下面的事件控制代码例子中先分配了内存然后产生了一个错误而造成它不再执行释放内存的程序代码

ProcedureTForm.ButtonlClick(SenderTobject)

Var

PointerPointer

IntegerNumzeroIntger

begin

NumzeroΚ

GetMem(Pointer{分配K的内存资源}

IntegerΚdivNumzero{此句产生一个除法错误}

FreeMem(Pointer{这里此句将不被执行}

end

尽管大多数错误不会这样明显但上例包含了重要的一点当错误产生后程序执行跳出模块其后的资源释放程序代码不再被执行为了确保上例中的FreeMem能够释放被GetMem占用的内存资源必须把代码放入一个资源保护模块

这里给出一个曲型的资源保护模块的格式

{资源的分配}

try

{资源的使用}

finally

{资源的释放}

end

上面的try...finally模块可以使程序总能执行finally部分中的任何程序代码即使有错误在保护模块中产生当try部分中的某一条代码执行引起错误时执行将直接跳到finally部分若执行中没有错误产生则程序按正常顺序执行

在下面的事件控制代码例子中先分配了内存然后产生了一个错误但是仍然执行了释放内存的程序代码

ProcedureTForm.ButtonClick(SenderTobject)

Var

PointerPointer

IntegerNumzeroInteger

begin

NumzeroΚ

GetMem(Pointer{分配K的内存资源}

try

IntegerΚdivNumzero{此句产生一个除法错误}

finally

FreeMem(Pointer{这里此句仍将被执行}

end

end

如何保障程序对所用资源的释放在程序编制中是一个非常重要的问题必须在程序编制中加以实践和注意

上一篇:Delphi趣味编程实例三则

下一篇:如何用Delphi6实现对计算机的远程控制