是否可以在带有FormStyle = fsMDIChild
框架的主表单上显示MDI子表单(Align = alClient
)?
在主窗体上创建框架:
Frame := TfrCalendar.Create(Self);
Frame.Parent := Self;
在主表单上创建MDI子表单:
if Assigned(FMDIRef)
then
FMDIRef.BringToFront
else begin
FMDIRef := TFReference.Create(Application);
FMDIRef.Show;
end;
此后,子窗体不可见。如果不创建框架,则该窗体可见。如果先显示子表单,然后在主表单上创建一个框架,则子表单将再次变得不可见。
答案 0 :(得分:5)
这里的问题是您的框架正在与MDI客户端窗口争夺空间。 MDI客户端窗口是MDI子窗口的父窗口。
在您的方案中,框架占用了主窗口内所有剩余的客户区域,因此没有空间用于MDI客户窗口。
无法尝试。 MDI客户端窗口必须移至某个位置,并且必须将其留出一些空间。
根据您的实际目标,可以使用不同的解决方案:
alTop
。 MDI客户端窗口将使用它下面的剩余空间。