無法在 MDI 下使用 ShowModal ? |
答題得分者是:hagar
|
xBug
一般會員 發表:27 回覆:17 積分:8 註冊:2003-06-10 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
xBug
一般會員 發表:27 回覆:17 積分:8 註冊:2003-06-10 發送簡訊給我 |
應該不是 TForm.Visible 的問題,因為該錯誤訊息出現後,Form 仍可正常出現,只不過是以 TForm.Show 的方式出現。 我將程式碼做了修改如下,依舊是不行。
ADM001 := TADM001.Create(Owner); ADM001.Visible := True; ADM001.ShowModal;我試過改變 TForm.FormStyle 屬性,無論是 fsMDIChild 或是 fsNormal 都會出現一樣的錯誤訊息。 可以在幫忙想想其他原因或替代方法嗎? -------------------------------- 給我一個支點,我可以撐起整個地球 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 應該不是 TForm.Visible 的問題,因為該錯誤訊息出現後,Form 仍可正常出現,只不過是以 TForm.Show 的方式出現。 我將程式碼做了修改如下,依舊是不行。我之前的經驗, Delphi被設定成MDI之後, 再去改變formType, 似乎會有很多問題, 所以建議你重新拉一個標準FORM(不要MDI)來做LOGIN會比較快! 另外, MDI本身就是屬多執行的FORM, 它必須符合非獨佔性功能, 否則幹嘛叫MDI, 因此使用ShowModal就是不合邏輯的!ADM001 := TADM001.Create(Owner); ADM001.Visible := True; ADM001.ShowModal;我試過改變 TForm.FormStyle 屬性,無論是 fsMDIChild 或是 fsNormal 都會出現一樣的錯誤訊息。 可以在幫忙想想其他原因或替代方法嗎? -------------------------------- 給我一個支點,我可以撐起整個地球 |
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
|
xBug
一般會員 發表:27 回覆:17 積分:8 註冊:2003-06-10 發送簡訊給我 |
的確,在 MDI Form Application 中使用 TForm.ShowModal 感覺上像是要搶走 MDI 中 MainForm 的主控權,可是我覺得奇怪的是 ShowMessage() 函數的對話框是如何做到的? 事實上,我也是希望 Login 的畫面可以暫時性的 Halt 住其他 Form,與 ShowMessage 函數所產生的畫面是一樣的效果。 ha009 大大: 不好意思、小弟才疏學淺,您所謂的 SDI Form 是指將 FormStyle 屬性設為 fsNormal 嗎?小弟有試著改變 TForm.FormStyle 屬性為 fsNormal,但遇到 TForm.ShowModal 時仍舊會出現此錯誤訊息ㄝ,是不是我還漏漏了什麼東西? --------------------------------
給我一個支點,我可以撐起整個地球
|
xBug
一般會員 發表:27 回覆:17 積分:8 註冊:2003-06-10 發送簡訊給我 |
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好:
我想你一定是搞錯了,因為 MDI 的架構是不可能使用 ShowModal 的。
你可以看看原始碼
if Visible or not Enabled or (fsModal in FFormState) or (FormStyle = fsMDIChild) then raise EInvalidOperation.Create(SCannotShowModal);視窗類型有下列幾種,大略介紹 fsNormal SDI Form,可使用 ShowModal。 fsMDIChild,fsMDIForm MDI Form,不允許使用 ShowModal。 fsStayOnTop 永遠在應用程式的最上層,使用前需先 hide。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |