全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1376
推到 Plurk!
推到 Facebook!

如何結束且不看到結束Form的畫面

答題得分者是:老大仔
shihyi
一般會員


發表:8
回覆:12
積分:4
註冊:2009-01-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-06-14 09:51:33 IP:220.130.xxx.xxx 訂閱
各位先進,大家好

小第有一事不明
我建立了一個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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-06-14 09:53:21 IP:59.120.xxx.xxx 未訂閱
請用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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-06-14 11:52:26 IP:220.130.xxx.xxx 訂閱
謝謝您的回覆

這個方式有嘗試過了,還是不行

===================引 用 老大仔 文 章===================
請用Form1.Hide;試看看


老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-06-14 12:01:15 IP:59.120.xxx.xxx 未訂閱

[code delphi]
Form2 := TForm2.Create(self);
Form1.Hide;
Form2.ShowModal;

[/code]
shihyi
一般會員


發表:8
回覆:12
積分:4
註冊:2009-01-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-06-14 13:11:00 IP:220.130.xxx.xxx 訂閱
謝謝您的回覆

已經可以了
可是我好像不能在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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-06-14 14:11:25 IP:118.169.xxx.xxx 未訂閱
雖然結案了, 但我發現你的整體觀念不正確
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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2010-06-14 21:03:23 IP:123.204.xxx.xxx 訂閱
非常感謝您的回覆
看來我還有待加強

其實我本來是要做一個登入的畫面
所以如果照您的意思來看
我以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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2010-06-15 00:33:54 IP:118.169.xxx.xxx 未訂閱
最直接的做法
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)
該如何實現呢?

無論如何,謝謝各位先進的解惑~
系統時間:2024-05-01 22:11:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!