浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

Delphi程序使用资源的释放

    写出一个不会造成资源分配崩溃的Delphi应用程序的关键是确保如果程序中分配了资源,即使当故障发生,程序也应能释放占用的资源。

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

  ProcedureTForm1.ButtonlClick(Sender:Tobject
);

  Var

  Pointer1:Pointer;

  Integer1,Numzero:Intger;

  begin

  Numzero:Κ0;

  GetMem(Pointer1,1024);{分配1K的内存资源}


  Integer1:Κ5divNumzero;{此句产生一个除法错误}

  FreeMem(Pointer1,1024);{这里此句将不被执行}

    end;

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

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

  {资源的分配}

  try

  {资源的使用}

  finally

  {资源的释放}

  end;

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

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

  ProcedureTForm1.Button1Click(Sender:Tobject
);

  Var

  Pointer1:Pointer;

  Integer1,Numzero:Integer;

  begin

  Numzero:Κ0;

  GetMem(Pointer1,1024);{分配1K的内存资源}


  try

  Integer1:Κ5divNumzero;{此句产生一个除法错误}

  finally

  FreeMem(Pointer1,1024);{这里此句仍将被执行}

  end;

  end;

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

相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...