如何結束且不看到結束Form的畫面 |
答題得分者是:老大仔
|
shihyi
一般會員 發表:8 回覆:12 積分:4 註冊:2009-01-03 發送簡訊給我 |
各位先進,大家好
小第有一事不明 我建立了一個Project,在Project有2個Form,分別是Form1及Form2 我在Form1上放了一個Button,程式碼如下: [code delphi] procedure TForm1.Button1Click(Sender: TObject); begin Form2 := TForm2.Create(self); Form2.ShowModal; Form1.Close; Form1.Destory; end; [/code] 我按下Button1後,Form2正確的Show出來了 但是我的疑問是 我把Form2縮小拉旁邊一點 我怎麼還可以看到Form1呢? 雖然我沒有辦法操作Form1,但是有辦法讓Button1按下後 Show出Form2且結束Form1嗎?(就是在畫面上都不要看到Form1) 還是我哪邊程式碼寫的不對 還請各位先進不吝指教 Best Regards, |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
請用Form1.Hide;試看看
===================引 用 shihyi 文 章=================== 各位先進,大家好 小第有一事不明 我建立了一個Project,在Project有2個Form,分別是Form1及Form2 我在Form1上放了一個Button,程式碼如下: [code delphi] procedure TForm1.Button1Click(Sender: TObject); begin ? Form2 := TForm2.Create(self); ? Form2.ShowModal; ? Form1.Close; ? Form1.Destory; end; [/code] 我按下Button1後,Form2正確的Show出來了 但是我的疑問是 我把Form2縮小拉旁邊一點 我怎麼還可以看到Form1呢? 雖然我沒有辦法操作Form1,但是有辦法讓Button1按下後 Show出Form2且結束Form1嗎?(就是在畫面上都不要看到Form1) 還是我哪邊程式碼寫的不對 還請各位先進不吝指教 Best Regards, |
shihyi
一般會員 發表:8 回覆:12 積分:4 註冊:2009-01-03 發送簡訊給我 |
|
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
|
shihyi
一般會員 發表:8 回覆:12 積分:4 註冊:2009-01-03 發送簡訊給我 |
謝謝您的回覆
已經可以了 可是我好像不能在Form1.Hide; 後面加Form1.close; 如果只是Form1.Hide; 的話,那Form1佔住的系統資源不是還在嗎? 還是我必需在其它的Form做Application.terminate;的動作? 有辦法在Form1跳到Form2時,將Form1結束掉嗎? Anyway,有點離題了,總之這個問題已經解決了 謝謝前輩的不吝指教~ ===================引 用 老大仔 文 章=================== [code delphi] Form2 := TForm2.Create(self); Form1.Hide; Form2.ShowModal; [/code] |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
雖然結案了, 但我發現你的整體觀念不正確
FORM1 CALL FORM2 FORM1 為 父層 FORM2 為 子層 FORM1 = MAIN FORM FORM2 SHOW 出來時, FORM1 怎麼可以CLOSE, 因為 FORM1 CLOSE, 會造成父層結束會帶動 小層一併結束掉(原理) 所以你只是想FORM1看不到, 雖然用HIDE 似乎可以解決, 但我會建議 把FORM2 放大到整個視窗蓋掉 FORM1, 同時不讓 FORM2 可以移動, 這樣至少可以創造一個假象--> 看不到FORM1 ===================引 用 shihyi 文 章=================== 各位先進,大家好 小第有一事不明 我建立了一個Project,在Project有2個Form,分別是Form1及Form2 我在Form1上放了一個Button,程式碼如下: [code delphi] procedure TForm1.Button1Click(Sender: TObject); begin ? Form2 := TForm2.Create(self); ? Form2.ShowModal; ? Form1.Close; ? Form1.Destory; end; [/code] 我按下Button1後,Form2正確的Show出來了 但是我的疑問是 我把Form2縮小拉旁邊一點 我怎麼還可以看到Form1呢? 雖然我沒有辦法操作Form1,但是有辦法讓Button1按下後 Show出Form2且結束Form1嗎?(就是在畫面上都不要看到Form1) 還是我哪邊程式碼寫的不對 還請各位先進不吝指教 Best Regards, |
shihyi
一般會員 發表:8 回覆:12 積分:4 註冊:2009-01-03 發送簡訊給我 |
非常感謝您的回覆
看來我還有待加強 其實我本來是要做一個登入的畫面 所以如果照您的意思來看 我以Form1當Main Form,Form2當登入的畫面來看的話 當Form1.Create時,我帶出Form2,然後在登入完後回到Form1 意思是這樣子嗎? 那我Form2在輸入時,不要讓Form1跳出來的,等到輸入完成後,再跳出Form1的功能 (意思就是像Dialog一樣,要先操作完Dialog才能操作Form) 該如何實現呢? 無論如何,謝謝各位先進的解惑~ ===================引 用 P.D. 文 章=================== 雖然結案了, 但我發現你的整體觀念不正確 FORM1 CALL FORM2 FORM1 為 父層 FORM2 為 子層 FORM1 = MAIN FORM FORM2 SHOW 出來時, FORM1 怎麼可以CLOSE, 因為 FORM1 CLOSE, 會造成父層結束會帶動 小層一併結束掉(原理) 所以你只是想FORM1看不到, 雖然用HIDE 似乎可以解決, 但我會建議 把FORM2 放大到整個視窗蓋掉 FORM1, 同時不讓 FORM2 可以移動, 這樣至少可以創造一個假象--> 看不到FORM1 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
最直接的做法
FORM1 為 MAIN FORM, FORM2 為 登入 FORM 程式一進入, 先CREATE FORM1 在FORM1 中的 ONSHOW, 或 ONACTIVE 直接 CREATE FORM2 FORM2進行登入, 成功就關閉 FORM2, 回到 FORM1 不成功, 關閉FORM2, 回到FORM1 後再直接結束 FORM1 即可 當然還有更結構化的寫法, 這只是其中一個做法 ===================引 用 shihyi 文 章=================== 非常感謝您的回覆 看來我還有待加強 其實我本來是要做一個登入的畫面 所以如果照您的意思來看 我以Form1當Main Form,Form2當登入的畫面來看的話 當Form1.Create時,我帶出Form2,然後在登入完後回到Form1 意思是這樣子嗎? 那我Form2在輸入時,不要讓Form1跳出來的,等到輸入完成後,再跳出Form1的功能 (意思就是像Dialog一樣,要先操作完Dialog才能操作Form) 該如何實現呢? 無論如何,謝謝各位先進的解惑~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |