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

Form 的控制問題

尚未結案
ericboy
一般會員


發表:17
回覆:22
積分:7
註冊:2004-05-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-14 12:05:09 IP:210.3.xxx.xxx 未訂閱
假設我的程式有兩張 form. 分別是 form1 及 form2. Form1 有一個 button 呼叫了 form2 出來. 但這個時候, 怎樣可以限制使用者必須完成或關閉 form2 才能回到 form1?
lion3
一般會員


發表:1
回覆:1
積分:0
註冊:2004-06-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-14 12:24:57 IP:61.222.xxx.xxx 未訂閱
FORM2一定要關掉 那就在FORM2也設一個BUTTON 點選後 就可回到FORM1 和你FORM1 出現FORM2的動作一樣 .....我有沒有搞錯你的問題呢
speedup
資深會員


發表:19
回覆:259
積分:280
註冊:2003-07-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-14 12:34:12 IP:61.224.xxx.xxx 未訂閱
引言: 假設我的程式有兩張 form. 分別是 form1 及 form2. Form1 有一個 button 呼叫了 form2 出來. 但這個時候, 怎樣可以限制使用者必須完成或關閉 form2 才能回到 form1?
Form2.ShowModal; 混心雜欲 棄修身~唉
------
唉~
ericboy
一般會員


發表:17
回覆:22
積分:7
註冊:2004-05-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-14 13:45:04 IP:210.3.xxx.xxx 未訂閱
首先多謝 lion3 兄的意見. 可惜你搞錯了我的問題. 而 speedup 兄, 已解決了我一部份的問題, 但是怎樣才可以從 form2 回到form1 ? 小弟用 form2.hide; form1.show; 跟著我在 form1 做任何動作也沒有回應, 但程式是正常運行的.    請問 speedup 兄怎樣可以解決? 
lo
初階會員


發表:8
回覆:69
積分:25
註冊:2003-01-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-14 13:58:42 IP:211.76.xxx.xxx 未訂閱
你好 設定Form2的屬性: (1)WindowState設為wsMaximized (2)BordereIcons的biSystemMenu為true其他為false 如此Form2打開時為全銀幕右上方祇留下關閉的一個小Icon 這種方式可以嗎
ericboy
一般會員


發表:17
回覆:22
積分:7
註冊:2004-05-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-14 14:36:19 IP:210.3.xxx.xxx 未訂閱
多謝 lo 兄的意見.    其實 speedup 兄的方法已解決了我的問題. 只是明白用了speedup 兄的方法, 為何無法正常回到 form1. 
speedup
資深會員


發表:19
回覆:259
積分:280
註冊:2003-07-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-14 16:31:21 IP:61.224.xxx.xxx 未訂閱
引言: 首先多謝 lion3 兄的意見. 可惜你搞錯了我的問題. 而 speedup 兄, 已解決了我一部份的問題, 但是怎樣才可以從 form2 回到form1 ? 小弟用 form2.hide; form1.show; 跟著我在 form1 做任何動作也沒有回應, 但程式是正常運行的. 請問 speedup 兄怎樣可以解決? < face="Verdana, Arial, Helvetica"> 按Form2的X或直接在Form2的相關按鈕事件中直接下Form2.Close; 混心雜欲 棄修身~唉
------
唉~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-14 23:01:29 IP:219.129.xxx.xxx 未訂閱
引言: 首先多謝 lion3 兄的意見. 可惜你搞錯了我的問題. 而 speedup 兄, 已解決了我一部份的問題, 但是怎樣才可以從 form2 回到form1 ? 小弟用 form2.hide; form1.show; 跟著我在 form1 做任何動作也沒有回應, 但程式是正常運行的.
ericboy您好: 先介绍下show与showmodal两者之间的区别: show:适用于所有控件和TForm组件;声明:procedure show ;说明:它通过设置窗体或控件的Visible属性为True或False,使其成为可视或不可视/ showModal:适用于TForm组件;声明:function showmodal:integer;说明:该方法将窗体显示成模式化(modal)窗口,一个模式化窗体显示时,只有关闭该窗口,才能将控制切换到程序的其它窗口中。如果用户关闭该窗体,窗体的ModalResult属性变成非0,当ModalResult具有一个非0值时,窗体将被关闭(结束执行)/ 所以我想你应该是用了Form2.ShowModal;而只是将form2.hide,并没关闭form2所以“在 form1 做任何動作也沒有回應”你应该将form2真正的关闭,加多一句 form2.Hide; form2.Close; form1.show; 不知会不会更加清楚点 ——行径窄处,留一步与人行—— ——
peipei36
一般會員


發表:8
回覆:51
積分:16
註冊:2002-03-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-14 23:41:51 IP:220.137.xxx.xxx 未訂閱
form2.ShowModal;後應該只要 close; 就回得來了.. 也許您可以把show跟close那部份的程式碼貼上來大家才能幫您唷.. 個人意見..
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-06-15 00:53:06 IP:203.204.xxx.xxx 未訂閱
引言: 而 speedup 兄, 已解決了我一部份的問題, 但是怎樣才可以從 form2 回到form1 ? 小弟用 form2.hide; form1.show; 跟著我在 form1 做任何動作也沒有回應, 但程式是正常運行的.
ericboy 你好 看樣子你應該是在某個Button的OnClick事件中寫Form2.Hide;Form1.Show吧!除非你有充足的理由在顯示Form2的時候不希望顯示Form1時才會如此寫法,若真要如此做,請將form2.Hide;及Form1.Show;寫在Form2.OnClose;事件中,然後在某個Button的事件中只要Form2.Close;就可以了。
-------Form1-----------------
Procedure TForm1.Button1Click(Sender: TObject);
Begin
  Form1.Hide;
  Form2.Show;
End;
-------Form2-----------------
Procedure TForm2.FormClose(Sender:TObject);
Begin
  //移到這裏
  Form2.Hide; // 這行可以省略
  Form1.Show;
End;
// 在某個按鈕的OnCLick事件中
Procedure TForm2.Button1Click(Sender:TObject);
Begin
  Close; // 改成Close;就好。
End;    以上為因應你的寫法所作的改變,以下示範一般的作法
-------Form1-----------------
Procedure TForm1.Button1Click(Sender: TObject);
Begin
  // 若要動建立,則可加上如下片段(專案檔中要把TForm2移到Availabled Forms)
  If Not Assigned(Form2) Then 
    Form2 := TForm2.Create(Application);
  Form2.ShowModal;
  或是
  If Form2.ShowModal = mrOK Then Begin
    // 傳回OK 
  End;
End;
-------Form2-----------------
// 在某個按鈕的OnCLick事件中
// Button1.ModalResult 設為mrOK、mrCancel....等值,Form2 Close後自動會傳回
Procedure TForm2.Button1Click(Sender:TObject);
Begin
  Close; // 
End;    
發表人 - chance36 於 2004/06/15 00:55:54
系統時間:2024-05-15 21:33:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!