Form 的控制問題 |
尚未結案
|
ericboy
一般會員 發表:17 回覆:22 積分:7 註冊:2004-05-04 發送簡訊給我 |
|
lion3
一般會員 發表:1 回覆:1 積分:0 註冊:2004-06-08 發送簡訊給我 |
|
speedup
資深會員 發表:19 回覆:259 積分:280 註冊:2003-07-04 發送簡訊給我 |
|
ericboy
一般會員 發表:17 回覆:22 積分:7 註冊:2004-05-04 發送簡訊給我 |
|
lo
初階會員 發表:8 回覆:69 積分:25 註冊:2003-01-12 發送簡訊給我 |
|
ericboy
一般會員 發表:17 回覆:22 積分:7 註冊:2004-05-04 發送簡訊給我 |
|
speedup
資深會員 發表:19 回覆:259 積分:280 註冊:2003-07-04 發送簡訊給我 |
引言: 首先多謝 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 發送簡訊給我 |
引言: 首先多謝 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 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 而 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 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |