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

關於表單建立的問題Create()

答題得分者是:ccchen
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-03 06:56:24 IP:61.13.xxx.xxx 未訂閱
請問以下兩種建立方式, 為什麼我用方法二時會錯誤 我的Form2是放在Available Forms中(project/option form頁面 右邊) 方法一: with TForm2.Create(self) do try showModal; finally Free; end; 方法二: TForm2.create(self); Form2.ShowModal; ---------------- 初出芧房程設師, 左鍵右鼠寫程式, 日扣夜寫眼框溼, 望能早成系分師。 ----------------
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-03 08:10:37 IP:61.219.xxx.xxx 未訂閱
你在你的Unit2.pas中應可看到一行 var Form2:TForm2; TForm2是一個類別, form2則是一個Global變數,只占4byte. TForm2.create(self); 用TForm2之類別Create了一個物件, 並未將此物件assign給任何變數 Form2.ShowModal; Form2這個變數並未定義 1. 改成 form2:=TForm2.create(self); Form2.ShowModal; 就不會有錯誤訊息了 2. 但form2未free, 雖parent free時會一起free, 但總是不可靠 故 form2:=TForm2.create(self); Form2.ShowModal; from2.free; 3. 為確保在任何Error, Form2也能free,故 form2:=TForm2.create(self); try Form2.ShowModal; finally from2.free; end; 4. 用個with包起來, 省略變數名稱, 就變成你的方法一了 所以兩個方法是同一種, 只是一個完整, 一個不完整
a123473119
一般會員


發表:19
回覆:46
積分:18
註冊:2002-08-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-06 10:26:28 IP:61.56.xxx.xxx 未訂閱
請教 ccchen 如果 不希望 showmodal (因想在螢幕上可另選一個功能畫面出來) 那該如何得知form1已關掉,再free 這個 form1 呢 如 if form1=nil then form1:=tform1.create(self); form1.show; free 應放在什地方 若用 try form1.show; finally form1.free; end; form1 show 一下,就被 free 掉了 謝謝.
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-06 15:21:38 IP:61.219.xxx.xxx 未訂閱
改成這樣就可以了!! try form1.showmodal; finally form1.free; end; 改成有showmodal就可了, 因為show只是把form給顯示出來, 所以Form一show出後,此命令就結果了, 然後就去執行Free的動做。 而Showmodal則會讓此Form顯示在所有的Form最上方, 也就是除非此表單結束,或有其他的Form在showmodal, 不然無法換到其他的Form。 因此,如果你沒有結束此Form,他都會一直停在Form1.showmodal 而當Form1被Close時,則會做Finally的動做,也就是去做Free。 ---------------- 初出芧房程設師, 左鍵右鼠寫程式, 日扣夜寫眼框溼, 望能早成系分師。 ----------------
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
系統時間:2024-05-12 13:30:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!