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

Form問題

答題得分者是:careychen
adidas76
一般會員


發表:1
回覆:6
積分:1
註冊:2008-07-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-29 21:11:17 IP:218.166.xxx.xxx 訂閱
請問

我想要用在form1裡的button將Form2開啟,然後當form2關掉, form1以及form2也一起關掉

這要怎麼做呢

我的程式碼還是有問題,要先關掉form2才能關掉form1

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Visible=false;
Form2->ShowModal();
Form1->Visible=true;
}
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-29 21:23:55 IP:59.126.xxx.xxx 訂閱
Hi , 改成下面這樣
===================引 用 adidas76 文 章===================
請問

我想要用在form1裡的button將Form2開啟,然後當form2關掉, form1以及form2也一起關掉

這要怎麼做呢

我的程式碼還是有問題,要先關掉form2才能關掉form1

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Visible=false;
Form2->ShowModal();
Form1->Visible=true;
this->Close();
}
------
價值的展現,來自於你用哪一個角度來看待它!!
adidas76
一般會員


發表:1
回覆:6
積分:1
註冊:2008-07-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-07-29 22:36:00 IP:218.166.xxx.xxx 訂閱
不好意思

應該是我沒說清楚

我想要關掉form2的時候才連form1一起關掉

如果沒有按下form2右上方的X,只是做下一行,我先在form2->visible=false;

然後再將form1開啟看見
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-07-29 23:39:17 IP:59.126.xxx.xxx 訂閱
上面那個一執行到 ShowModal() 時會停住不動然後秀出 Form2 的畫面,一直到你關掉 Form2 時才會往下執行,然後執行 this->Close(); 這時連 Form1 就一起關掉了,
這樣..... 不是你要的?

還是你是要呼叫 Form2 時先隱藏 Form1 ,然後 Form2 關時, Form1 一起關? 是這個意思嗎?

===================引 用 adidas76 文 章===================
不好意思

應該是我沒說清楚

我想要關掉form2的時候才連form1一起關掉

如果沒有按下form2右上方的X,只是做下一行,我先在form2->visible=false;

然後再將form1開啟看見
------
價值的展現,來自於你用哪一個角度來看待它!!
adidas76
一般會員


發表:1
回覆:6
積分:1
註冊:2008-07-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-07-29 23:40:49 IP:218.166.xxx.xxx 訂閱
對  是的  我想要的是這樣子

請問一下有解嗎
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-07-29 23:53:02 IP:59.126.xxx.xxx 訂閱
可是…我的回答,我的測試的確是這樣子的,你自己有試過嗎??

===================引 用 adidas76 文 章===================
對 是的 我想要的是這樣子

請問一下有解嗎
------
價值的展現,來自於你用哪一個角度來看待它!!
adidas76
一般會員


發表:1
回覆:6
積分:1
註冊:2008-07-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-07-30 00:09:55 IP:218.166.xxx.xxx 訂閱

但是我要Form2按下右上方的X 才把form1 form2一起關掉

如果執行form2裡面的一個button , 就把form2隱藏

然後將form1顯示


不過幫我加的這行會造成form1沒有顯示
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-07-30 00:37:52 IP:59.126.xxx.xxx 訂閱
那結論是這樣嗎?

Form1 按下後開 Form2 ,但是 Form1 隱藏,Form2 開啟
按下 Form2 的按鈕後, Form1 顯示, Form2 隱藏
那按下 Form2 的 X 後, Form1 和 Form2 一起關閉??


===================引 用 adidas76 文 章===================

但是我要Form2按下右上方的X 才把form1 form2一起關掉

如果執行form2裡面的一個button , 就把form2隱藏

然後將form1顯示


不過幫我加的這行會造成form1沒有顯示
------
價值的展現,來自於你用哪一個角度來看待它!!
adidas76
一般會員


發表:1
回覆:6
積分:1
註冊:2008-07-29

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-07-30 00:42:17 IP:218.166.xxx.xxx 訂閱
對的  就是這樣

但是有辦法解決嗎
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-07-30 09:10:46 IP:218.210.xxx.xxx 訂閱
哇,您真是奮戰不懈,快一點了還在線上~~,  讚哦
其實寫法是可以像下面這樣子寫,但其實你要做的目的是什麼,也許可以 po 出來,也許還有更好的作法也不一定

Form1 的 Button1 裡面寫
[code cpp]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
this->Visible = false;
Form2->Show();
}
[/code]

Form2 的寫法如下:

[code cpp]
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
this->Visible = false;
Form1->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormCloseQuery(TObject *Sender, bool &CanClose)
{
Form1->Close();
}
[/code]
------
價值的展現,來自於你用哪一個角度來看待它!!
adidas76
一般會員


發表:1
回覆:6
積分:1
註冊:2008-07-29

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-07-30 09:40:01 IP:61.220.xxx.xxx 訂閱
我想要做的東西大概如下

就是做兩個版本的東西

我要選擇第二個版本的話就顯示FORM2

然後不想要第二個版本就選取第一個版本FORM1

如果再版本二裡面直接打X 就全部關掉

但是上面的流程還是有問題

真的苦惱了我
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#12 引用回覆 回覆 發表時間:2008-07-31 09:11:15 IP:218.210.xxx.xxx 訂閱
那…這樣子做會不會好點

有一個 MainForm,裡面放兩個 button 一個上面寫 Ver1,一個寫 Ver2

按下 btnVer1 時,Show Form1 ,而 Form1 裡面有個按鈕,可以讓你跳 Form2 那 Form1 關閉時? 也是要自動關 Form2 對吧?
按下 btnVer2 時,Show Form2 , 而 Form2 裡面有個按鈕,可以讓你跳 Form1 ,按 X 關閉時,Form 1 、2 都關閉

但不管如何,反正 Form1 Form2 關閉都回 MainForm ,是這樣嗎?

===================引 用 adidas76 文 章===================
我想要做的東西大概如下

就是做兩個版本的東西

我要選擇第二個版本的話就顯示FORM2

然後不想要第二個版本就選取第一個版本FORM1

如果再版本二裡面直接打X 就全部關掉

但是上面的流程還是有問題

真的苦惱了我
------
價值的展現,來自於你用哪一個角度來看待它!!
adidas76
一般會員


發表:1
回覆:6
積分:1
註冊:2008-07-29

發送簡訊給我
#13 引用回覆 回覆 發表時間:2008-07-31 11:37:33 IP:61.220.xxx.xxx 訂閱
  謝謝你的回覆  我積分給你了

我有想到方法
其實一個form關掉有2個觸發程序 1. CloseQuery 2. FormClose
如果你是按件來使form關掉程序就會多一個 1.XXXclick 2.CloseQuery 3. FormClose

由上面觀察
所以只要在 2.CloseQuery 3. FormClose判斷
1. XXXclick 有沒有觸發,就可達到你想要的結果

我表達的不是很好,可能有點看不清楚,請見諒~~~
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#14 引用回覆 回覆 發表時間:2008-07-31 12:33:30 IP:218.210.xxx.xxx 訂閱
呵,你的問題有解決了才是最重要的~~~ 
------
價值的展現,來自於你用哪一個角度來看待它!!
編輯記錄
careychen 重新編輯於 2008-07-31 12:34:40, 註解 無‧
系統時間:2024-05-08 10:23:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!