LuF*_*ang 1 delphi mdi frame delphi-10.2-tokyo
有没有办法FormStyle = fsMDIChild在主窗体上显示具有框架的MDI子窗体()Align = alClient?
在主窗体上创建框架:
Frame := TfrCalendar.Create(Self);
Frame.Parent := Self;
Run Code Online (Sandbox Code Playgroud)
在主窗体上创建MDI子窗体:
if Assigned(FMDIRef)
then
FMDIRef.BringToFront
else begin
FMDIRef := TFReference.Create(Application);
FMDIRef.Show;
end;
Run Code Online (Sandbox Code Playgroud)
在此之后,子表单不可见.如果您不创建框架,则表单可见.如果您首先显示子窗体,然后在主窗体上创建一个框架,则子窗体将再次变为不可见.
这里的问题是您的框架正在与MDI客户端窗口竞争空间.MDI客户端窗口是MDI子窗口的父窗口.
在您的方案中,框架消耗主窗口内的所有剩余客户区域,因此不为MDI客户端窗口留出空间.
你在尝试什么是不可能的.MDI客户端窗口必须到达某个地方,您必须留出一些空间.
根据您的实际目标,提供不同的解决方案:
alTop.其下方的剩余空间将可用于MDI客户端窗口.