請問ShowModal多重開啟的問題 |
答題得分者是:RaynorPao
|
pireer
初階會員 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
假設有ABC三個Form.
AForm會用ShowModal去呼叫BForm... BForm又會用ShowModal呼叫CForm. 當我在CForm按下確定.正常要關掉C..B還是保持開者. 但現在關掉C會連B一起關.. A呼叫B <textarea class="cpp" rows="1" cols="60" name="code">if( BForm->ShowModal() != mrOk) return ; </textarea> B呼叫C <textarea class="cpp" rows="1" cols="60" name="code">if( CForm->ShowModal() != mrOk) return ; </textarea> BForm內沒有"確定"鍵.要關BForm要直接在Bform右上角點"X"關閉畫面.. CForm有"確定"鍵..按確定或取消都會關閉CForm.. 請前輩們指點.. |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
請參考以下的做法:
(1)假設你的 3 個 Form 在「Project/Options/Forms」裡面的設定是 (a)Form1 是 Auto-create forms (b)Form2 和 Form3 是 Available forms (2)在 Unit1.cpp 裡面加入以下的程式碼 #include "Unit2.h" // 呼叫 Form2 的地方 TForm2 *f2=new TForm2(Application); f2->ShowModal(); delete f2; (3)在 Unit2.cpp 裡面加入以下的程式碼 #include "Unit3.h" // 呼叫 Form3 的地方 TForm3 *f3=new TForm3(Application); f3->ShowModal(); delete f3; (4)在 Unit3.cpp 裡面加入以下的程式碼 // 關閉 Form3 Close();
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
pireer
初階會員 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
前輩你好..
依照你上述範例 .開一個新的project..照上面這樣測試是可以的. 旦我在原project中.這樣改卻一樣..只要C按確定或取消.B也會一起消失.. 而且B裡面有其他按紐(目前還沒寫CODE.只有把EVENT click叫出來).. 當我按B其他按鈕.也會把B關掉...=.=... 我的寫法跟前輩差不多..只是前輩用 Form2 = new TForm2( Application); 我是用 Form2 = new TForm2( this); 旦我其他的form寫法跟我這個一樣. 也是由A呼叫Z.再由Z呼叫X.. 卻不會有A呼叫B.B呼叫C然後C確定或取消會把B.C都關掉.. 不知道這是什麼問題... |
pireer
初階會員 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |