這是我的第一個主題下範式創建mdi窗體,並在mdi窗體錯誤打開MDI子
在同一個應用程序:
我有一個NormalForm(MainForm的),在一個彈出菜單調用的mdi窗體象這樣的:
MDIForm:=TMDIForm.Create(nil);
MDIForm.Show;
的形式開放的正確......現在,在MDI窗體我嘗試與創建MDIChild:
fm := TMDIChild.Create(Self);
fm.FormStyle:=fsMDIChild;
fm.Show;
檢索錯誤: 無法創建表單。沒有MDI表格目前處於活動狀態
任何人都知道該怎麼做?!
查看是否有任何MDI表單可用的代碼!?你知道我是怎麼做到的嗎? – quimdotractor 2012-01-13 15:01:23
查看Forms.pas中的TCustomForm.CreateWindowHandle。這是導致您的問題的VCL代碼。 MDI是一種老技術,大多數人已經遠離並試圖強迫它以沒有設計的方式工作而要求麻煩。一種解決方法可能是使您的MDI形成實際的主窗體,但將其隱藏起來。當前的主窗體將在啓動時顯示,當其彈出菜單想要顯示MDI窗體時,它不會像您的示例那樣創建它,而只是顯示它。 – 2012-01-13 15:12:21
@ user1147833這就是要點。無法更改的VCL代碼假定主窗體,即Application.MainForm是MDI窗體。你需要這樣做。 – 2012-01-13 15:18:46