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

function 釋放記憶體問題

尚未結案
fater
一般會員


發表:2
回覆:1
積分:0
註冊:2004-07-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-05 00:22:05 IP:221.124.xxx.xxx 未訂閱
不好意思,請問如 Function Abc(bmp_s:Tbitmap):Tbitmap; begin Result:=tbitmap.create; ......... Result.Assign(bmp_S); end; procedure Form1.Button1Click(Sender: TObject); var bmp:Tbitmap; begin ......... ABC(bmp).savetofile('zxcv.bmp'); 這個abc要如何釋放 還有一個簡單問題.. 怎麼把一個字串如檔名(c:\123\vcxz.bmp) 我只想要vcxz要怎樣做(但不一定是vcxz) 多謝。
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-05 01:04:37 IP:203.204.xxx.xxx 未訂閱
fater 你好    Sorry 好像誤解你的問題了 Function abc() 只是把傳入的bmp再用傳回值傳回來,傳回的bmp你沒使用一個變數去承接,則將會失去釋放的時機,而造成記憶體的漏失,以此例要能釋放ABC所傳回的bmp,使用如下程式即可:
Var
  bmp ,bmp1 : TBitmap;
Begin
  bmp := TBitmap.Create ;
  bmp.LocadFrom('....');
  bmp1 := ABC(bmp);
  bmp.Free;
  bmp1.Free;//由ABC傳回的
End;
另外的問題請參考 ExtractFileName(const FileName: string): string; // 取得檔案名稱(含副檔名) ExtractFileExt(const FileName: string): string; // 取得副檔名 ExtractFilePath(const FileName: string): string; // 取得路徑 等函式 _______________________________________ 深藍的魚,祝您好運..........連連 發表人 - chance36 於 2004/08/05 01:52:43
fater
一般會員


發表:2
回覆:1
積分:0
註冊:2004-07-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-05 18:45:58 IP:221.124.xxx.xxx 未訂閱
Chance36你好 原來是我自己白癡^^",真的多謝你的解答。
系統時間:2024-05-17 19:04:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!