帧主窗体上与FormStyle = fsMDIForm(Frame on main form wit

2019-09-30 01:29发布

有没有一种方式来显示MDI子窗体( FormStyle = fsMDIChild具有与一帧的主要形式) 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;

在此之后,子窗体是不可见的。 如果你没有创建一个框架,形式是可见的。 如果您首先显示子窗体,然后在主窗体上创建一个框架,然后将子窗体再次变得不可见。

Answer 1:

这里的问题是,你的框架是与MDI客户端窗口的空间竞争。 MDI客户端窗口是父MDI子窗口的窗口。

在您的方案框架消耗所有剩余客户区在主窗口内,因此留下了MDI客户端窗口的空间。

你正在尝试是不可能的。 MDI客户端窗口有去的地方,你必须离开它一定的空间。

根据您的实际目标是什么,不同的解决方案可供选择:

  • 如果帧的目的是可见的总是,然后使用alTop 。 它下面的剩余空间将提供给MDI客户端窗口。
  • 如果你想显示MDI客户端窗口的图像作为背景,请参阅我的答案在这里: https://stackoverflow.com/a/15137740/505088


文章来源: Frame on main form with FormStyle = fsMDIForm