麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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制作帶圖標的彈出式選單

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

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 久久国产精品久久久久久久久久 | 日日狠狠久久 | 国产精品国产成人国产三级 | 99精美视频| 巨根插入| 一级免费在线视频 | 久草最新在线 | 日韩欧美综合在线 | 香蕉久久久精品 | 本色视频aaaaaa一级网站 | av成人在线免费观看 | 免费a级网站 | 性欧美xxxx免费岛国不卡电影 | 性猛交ⅹxxx乱巴西 欧美日韩1区2区3区 | av电影在线观看免费 | 亚洲操比视频 | 黄色伊人网站 | 成人资源在线观看 | 欧产日产国产精品v | 中国成人在线视频 | 欧美视频国产 | 欧美一级做性受免费大片免费 | 男人午夜视频 | 久久久国产精品成人免费 | 国产91精品一区二区麻豆亚洲 | 欧美一级免费高清 | 天天鲁在线视频免费观看 | 欧美综合成人 | 一级电影在线免费观看 | 日本精品免费观看 | 在线看免电影网站 | 巨根插入 | av资源在线天堂 | 国产午夜亚洲精品午夜鲁丝片 | 精品一区二区三区中文字幕老牛 | 日韩欧美电影在线观看 | 国产精品一区二区x88av | 久久欧美亚洲另类专区91大神 | 日本在线不卡一区二区 | 国产精品久久久久久久四虎电影 | www.9191.com|