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

Form1 呼叫 Form2 ,但是 Form2 的物件無法釋放???

尚未結案
eric888
一般會員


發表:9
回覆:3
積分:2
註冊:2004-09-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-14 10:57:00 IP:220.130.xxx.xxx 未訂閱
我在Project中建立 Form1及Form2,由Form1 呼叫 Form2 Form2->ShowModal(); 在Form2上有動態產生Timage,畫完後要結束Form2回到Form1 但是再次 呼叫Form2->ShowModal(); 結果Form2上動態產生Timage,上次畫的內容未被清除 如何才可以完全釋放???
mine
中階會員


發表:28
回覆:129
積分:56
註冊:2004-03-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-14 14:50:11 IP:61.221.xxx.xxx 未訂閱
hihi~~
form2>>
image1.Picture.LoadFromFile('11.bmp');
Form1>>
{try
 gg:=TForm2.Create(Form1);
 gg.ShowModal;
finally
 Freeandnil(gg);
end;
Form2:=TForm2.Create(Form1);
Form2.ShowModal;}
Application.CreateForm(TForm2,Form2);
Form2.ShowModal;
end;
試了一下MDI FORM利用Show來作 也沒有發現您說的問題吶 可否post一小段程式 比較容易知道您的問題呢QQ 搞不懂!搞不懂!永遠都搞不懂!!
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-15 09:38:05 IP:220.135.xxx.xxx 未訂閱
Hi eric888 你好: 使用動態呼叫Form2試試

Form2 := TForm2.Create(Self);
Form2.ShowModal;
FreeAndNil(Form2);
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-15 09:55:45 IP:59.104.xxx.xxx 未訂閱
如果你是用標準的DELPHI或BCB來寫程式。 而且,沒有做任何特殊的設定。 那你所寫的一堆 FORM 都會在程式一開始執行時 就被載入了。而只是”隱藏”起來。 等你用了SHOW這種東西時。 它才現身出來。 所以。你要到 project -> option -> Forms 把那個 auto-create forms 裏面的 form2 移到 available forms 裏面去。 而自己用動態載入。 方法就跟 Miles 說的一樣了。^_^
Chance36
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-16 01:10:39 IP:203.204.xxx.xxx 未訂閱
eric888 你好
引言: 如何才可以完全釋放???
  我想你說的完全釋放,應該是指動態建立的TImage未完全釋放吧!
你可以在Form.OnClose事件中予以釋放或把內容清除吧
Procedure TForm2.Form2Close(Sender: TObject);
Begin
  // 清除內容,但TImage未釋放
  TIMage1.Picture := nil ;
  // 或釋放TImage
  FreeAndnil(TIMage1);End;
End;    
_______________________________________ 深藍的魚,祝您好運..........連連
系統時間:2024-06-08 12:32:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!