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

如何可同時讓幾個form留在畫面上,不用關一個,才能開一個

答題得分者是:cmf
a123473119
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-05 14:55:33 IP:61.56.xxx.xxx 未訂閱
是不是一定要用 mdi application? 客戶要求要把二個作業留在畫面上,可供隨時切換.? 一般我用 form1:=tform1.create(self); form1.showmodal; 一定要把form1 關掉後, 才可回主畫面,選另一個功能(如叫form2出來) 如果我把 form1.showmodal, 改成 form1.show form1 只出來一下又不見了,又回到主畫面 如何才能作到當form1 秀出後,可再到主畫面點功能,叫form2出來, 而form1也不用先關掉呢? 請各位前輩賜教?
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-05 15:09:56 IP:61.70.xxx.xxx 未訂閱
引言: 是不是一定要用 mdi application? 客戶要求要把二個作業留在畫面上,可供隨時切換.? 一般我用 form1:=tform1.create(self); form1.showmodal; 一定要把form1 關掉後, 才可回主畫面,選另一個功能(如叫form2出來) 如果我把 form1.showmodal, 改成 form1.show form1 只出來一下又不見了,又回到主畫面 如何才能作到當form1 秀出後,可再到主畫面點功能,叫form2出來, 而form1也不用先關掉呢? 請各位前輩賜教?
form1:=tform1.create(self); form2:=tform1.create(self); Form1.FormStyle:=fsStayOnTop; Form2.FormStyle:=fsStayOnTop; Form1.Show; Form2.Show;
------
︿︿
a123473119
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-06 10:13:46 IP:61.56.xxx.xxx 未訂閱
感謝 cmf 的幫忙. 我知道為什form1 出現一下又不見的原因了. with Tform1.create(self) do try show; finally release; end; 因後面有 release; 後我改成 if form1=nil then form1:=tform1.create(self); form1.show; 但如何 release 這 form1 呢. 既 form1 show 出以後, 如何知道它被關閉了, 再把它 release 掉 請幫忙,謝謝
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-06 10:35:18 IP:61.218.xxx.xxx 未訂閱
引言: 感謝 cmf 的幫忙. 我知道為什form1 出現一下又不見的原因了. with Tform1.create(self) do try show; finally release; end; 因後面有 release; 後我改成 if form1=nil then form1:=tform1.create(self); form1.show; 但如何 release 這 form1 呢. 既 form1 show 出以後, 如何知道它被關閉了, 再把它 release 掉 請幫忙,謝謝
procedure TMainForm1.TEST; { if form1=nil then form1:=tform1.create(self); form1.ONClose:=FormClose; form1.show; } procedure TMainForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if MessageDlg('Close Form1 ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Action := caFree else Action := caNone; end; 發表人 - cmf 於 2003/01/06 10:38:47
------
︿︿
a123473119
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-06 23:36:21 IP:61.56.xxx.xxx 未訂閱
謝謝 cmf 後來我發現只要在 form1 之 close event 內 加入 action:=caFree; (help 說會 release memory) form1.show 後,在main form 就可不管它了. main form 關閉時,其它所有未關閉之form 也會自動關 謝謝 cmf
a123473119
一般會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-13 00:04:34 IP:61.56.xxx.xxx 未訂閱
經驗分享: 如果想用 show 而不用 showmodal main : if form1=nil then form1:=Tform1.create(self); form1.show; form1: close event action:=caFree; form1:=nil; ** 如果在form1 用 正常close ,是不會有問題 如果是判斷 esc 鍵, 再 close, 別忘了在 close 前下一個 key:=0;
系統時間:2024-05-13 22:16:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!