全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1994
推到 Plurk!
推到 Facebook!

Delphi's Initialization區段與Finalization區段在BCB裡如何實現

答題得分者是:pwipwi
Hero
一般會員


發表:3
回覆:10
積分:12
註冊:2002-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-28 09:55:56 IP:220.130.xxx.xxx 訂閱
Delphi中有Initialization與Finalization兩個關鍵字用來初始化與結束化單元(Unit),想請教各位在BCB中是否有相對應的方法或技巧達到相同的動作? 例如在某個單元中的初始化區段裡建立一個物件,讓所有使用到此單元的單元可以直接使用此物件而不用擔心物件是否存在,而在結束化區段李釋放此物件而不用擔心程式結束時此物件是否沒有被釋放
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-28 10:21:18 IP:211.22.xxx.xxx 未訂閱
1.以GUI的程式來說,在Form Create時可以初始化Form上面的一些元件屬性,於Form Close 或 Close Query時,可以將整個程式中全域或者類別中動態申請來的記憶體作釋放等等,或者在Project source 裡面也可以實作。
2.以Console程式來說,可以使用atexit函數來作程式結束前的清理工作。
===================引 用 Hero 文 章===================
Delphi中有Initialization與Finalization兩個關鍵字用來初始化與結束化單元(Unit),想請教各位在BCB中是否有相對應的方法或技巧達到相同的動作? 例如在某個單元中的初始化區段裡建立一個物件,讓所有使用到此單元的單元可以直接使用此物件而不用擔心物件是否存在,而在結束化區段李釋放此物件而不用擔心程式結束時此物件是否沒有被釋放
編輯記錄
Stallion 重新編輯於 2007-06-29 00:16:48, 註解 加幾句話。‧
Hero
一般會員


發表:3
回覆:10
積分:12
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-02 09:51:12 IP:59.124.xxx.xxx 訂閱
這個我知道,可是Initialization & Finalization是針對整個Unit,比如說有一些全域的物件可以在這裡被建立、釋放,引用者只要引用該Unit即可使用這些物件,而不需要再呼叫一初始化的函數或建構式

===================引 用 Stallion 文 章===================
1.以GUI的程式來說,在Form Create時可以初始化Form上面的一些元件屬性,於Form Close 或 Close Query時,可以將整個程式中全域或者類別中動態申請來的記憶體作釋放等等,或者在Project source 裡面也可以實作。
2.以Console程式來說,可以使用atexit函數來作程式結束前的清理工作。
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-07-08 01:32:24 IP:61.62.xxx.xxx 訂閱
您好:
在C 的語法中,推薦使用smart pointer來做到一樣的動作,而且更安全(在Exception發生的狀況下)
比如用auto_ptr或boost的share_ptr來管理物件的初始化或結束。只要物件life span結束,就會自動呼叫你的destructor。
另外Borland的compiler也有__finally這個關建字達到和Delphi語法同樣的功用,不過不建議使用。
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-16 22:51:38 IP:60.248.xxx.xxx 訂閱
好久沒來看討論區了,有些懷念。  
就個人所知,在bcb中與之對應的概念是使用
#pragma exit
#pragma startup
在某些很特別的場合下,你會需要用它! 請參考help檔。


希望有些幫助! good luck!
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2024-05-02 20:21:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!