Delphi程序使用资源的释放
文件 内存 WINDOWS资源和对象是一些必须时时加以注意的需确保释放的资源 下面的事件控制代码例子中先分配了内存 然后产生了一个错误 而造成它不再执行释放内存的程序代码
ProcedureTForm .ButtonlClick(Sender Tobject)
Var
Pointer Pointer
Integer Numzero Intger
begin
Numzero Κ
GetMem(Pointer ) {分配 K的内存资源}
Integer Κ divNumzero {此句产生一个除法错误}
FreeMem(Pointer ) {这里此句将不被执行}
end
尽管大多数错误不会这样明显 但上例包含了重要的一点 当错误产生后 程序执行跳出模块 其后的资源释放程序代码不再被执行 为了确保上例中的FreeMem能够释放被GetMem占用的内存资源 必须把代码放入一个资源保护模块
这里给出一个曲型的资源保护模块的格式
{资源的分配}
try
{资源的使用}
finally
{资源的释放}
end
上面的try...finally模块可以使程序总能执行finally部分中的任何程序代码 即使有错误在保护模块中产生 当try部分中的某一条代码执行引起错误时 执行将直接跳到finally部分 若执行中没有错误产生 则程序按正常顺序执行
在下面的事件控制代码例子中先分配了内存 然后产生了一个错误 但是仍然执行了释放内存的程序代码
ProcedureTForm .Button Click(Sender Tobject)
Var
Pointer Pointer
Integer Numzero Integer
begin
Numzero Κ
GetMem(Pointer ) {分配 K的内存资源}
try
Integer Κ divNumzero {此句产生一个除法错误}
finally
FreeMem(Pointer ) {这里此句仍将被执行}
end
end
lishixinzhi/Article/program/Delphi/201311/25084