線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1379
推到 Plurk!
推到 Facebook!

如何得知TFileStream已經destruct?

尚未結案
dadai
一般會員


發表:29
回覆:31
積分:12
註冊:2009-01-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-19 20:36:01 IP:220.133.xxx.xxx 訂閱
想請教前輩先進們
當我用類似下列的方法
AStream = new TFileStream( AFileName, fmOpenRead );
new出一個TFileStream的class之後
我該如何得知new出來的東西已經destruct?

我找過 TFileStream 之中的 property 和 function
但是沒有提供類似 thread 的 OnTerminate event
只有找到一個BeforeDestructor function
但是找到的資料似乎這個function不提供任何功能
只能繼承TFileStream再改寫它

boss.tw
高階會員


發表:15
回覆:109
積分:194
註冊:2005-05-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-19 20:58:49 IP:122.116.xxx.xxx 訂閱
我以為自已 new 出來的,自已 delete

如果 new 之前設成 null,然後 new 附值
delete 之後設成 null
之後檢查 值是否為 null 不知可不可行
dadai
一般會員


發表:29
回覆:31
積分:12
註冊:2009-01-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-19 21:10:15 IP:220.133.xxx.xxx 訂閱
boss.tw您好
謝謝你的意見
我有想過這個方式
不過因為我的環境使得不大可行

我是在TIdFTPServerRetrieveFile中
對TIdTFPServerRetrieveFile的引數VStream執行new的動作
VStream = new TFileStream( MyDownLoadFile, fmOpenRead );

當使用者下載檔案完畢之後
VStream會自動destruct
但是我有些動作想在VSteam destruct之前執行

還是謝謝您的意見


===================引 用 boss.tw 文 章===================
我以為自已 new 出來的,自已 delete

如果 new 之前設成 null,然後 new 附值
delete 之後設成 null
之後檢查 值是否為 null 不知可不可行
dadai
一般會員


發表:29
回覆:31
積分:12
註冊:2009-01-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-02-24 21:41:23 IP:122.116.xxx.xxx 訂閱
自我回覆一下

找不到可以使用的 function
最後還是繼承 TFileStream
建立一個 TMyFileSteeam class
然後改寫 BeforeDestruct() 來通知檔案已經下載完畢

分享給大家自己的經驗
系統時間:2024-04-20 6:45:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!