2012-04-12 53 views
-1

VCL本身不允許除MainForm以外的其他表單承載MDI子表單。這是Borland的硬編碼限制,而不是微軟MDI架構的限制。 Microsoft允許應用程序中的多個窗口託管MDI子項。在Win32 API中沒有MainForm的概念。單個應用程序中的多個MDI父表單

我已經嘗試將embarcadro下面的C++示例轉換爲embarcadro delphi沒有成功。 創建mdi子窗體時,我一直遇到錯誤「沒有mdi窗體當前處於活動狀態」。

此C++示例演示如何允許非MDI項目託管多個MDI父窗體,其中沒有一個是VCL的MainForm。

下載與資訊(下載所需的帳戶) http://cc.embarcadero.com/item/23574

直接下載(沒有下載所需的帳戶) http://www.delphibasics.info/MultipleMDIParentFormsInASingleApplication.zip

我將不勝感激,如果有人將這種樣品從embarcadro C++語言轉換爲embarcadro delphi語言。謝謝。

+4

Stack Overflow不是免費的轉換服務。如果遇到困難,您必須嘗試自己並提出具體問題。 – 2012-04-12 19:05:20

+4

我寫了那篇文章。如果您需要幫助轉換它,請在Embarcadero論壇發佈請求,或者私下給我發郵件。 – 2012-04-12 19:44:19

+2

即使應用程序中的單個MDI父窗體也是太多。 :-)嘗試使用停靠代替。 – 2012-04-12 20:19:48

回答

4

Quality Central#12006 Hosting MDI child forms in non-MainForm forms在其變通方法說明中詳細介紹瞭如何添加對此的支持。它確實涉及修補VCL源碼,並且是針對Delphi 2005發佈的,所以有些步驟可能已經改變。它也被關閉爲不會做,所以如果你追求這種方法,你將不得不自己長期維護它。

相關問題