国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

Delphi程序使用資源的釋放

2019-11-18 18:57:36
字體:
來源:轉載
供稿:網友
寫出一個不會造成資源分配崩潰的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模塊可以使程序總能執行fi
??nally部分中的任何程序代碼,即使有錯誤在保護模塊
中產生。當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;

  如何保障程序對所用資源的釋放,在程序編制中是一
個非常重要的問題,必須在程序編制中加以實踐和注意。

上一篇:Delphi編程技巧十則

下一篇:Delphi制作帶圖標的彈出式選單

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 日照市| 崇左市| 大田县| 思茅市| 汶川县| 东乌| 焉耆| 夏津县| 宝兴县| 边坝县| 子长县| 恩施市| 文登市| 资中县| 重庆市| 光泽县| 石家庄市| 浑源县| 马公市| 南澳县| 台州市| 赣州市| 安庆市| 兴隆县| 城市| 盐亭县| 东至县| 额尔古纳市| 延长县| 彩票| 高尔夫| 巨鹿县| 临夏市| 改则县| 正阳县| 江门市| 全南县| 沙坪坝区| 天镇县| 博罗县| 合阳县|