这是我的第一个话题
在同一个申请中:
我有一个NormalForm(Mainform),在Popupmenu调用的MDIForm中是这样的:
MDIForm:=TMDIForm.Create(nil);
MDIForm.Show;
表单正确打开...现在,在MDI表单中,我尝试使用:
创建MDIChild fm := TMDIChild.Create(Self);
fm.FormStyle:=fsMDIChild;
fm.Show;
检索错误: 无法创建表单。目前没有MDI表单活动
任何人都知道怎么做?!
答案 0 :(得分:4)
你不能混合这样的表单样式。 MDI子表单期望应用程序的主要形式是MDI表单。在创建子项时,VCL的代码不会查看是否有任何 MDI表单可用。
答案 1 :(得分:1)
VCL本身并不支持您尝试的内容。它需要将应用的MainForm
设置为FormStyle=fsMDIForm
,而仅会查看MainForm。您的MainForm没有这样设置。
这是VCL限制,而不是Windows限制。可以解决这个问题并在其他非MainForm表单中使用MDI子表单,但它需要对VCL的源代码进行相当多的黑客攻击。请参阅this example和this QC report。