Red*_*nov 2 forms delphi delphi-7
这是我在我的主要表单中使用的代码:
if not Assigned(FPerHist) then
begin
Application.CreateForm(TFPerHist,FPerHist);
end;
FPerHist.Show;
Run Code Online (Sandbox Code Playgroud)
我将FPerHist的FormStyle设置为StayOnTop.
这适用于允许打开多个表单,同时将所有子表单保留在主表单的顶部.但是当表单处于加载某些内容的中间,或者在调试时到达检查点时,表单仍然位于其他应用程序之上.
用户发现这很烦人,因为在加载这个表单时他们无法处理其他事情,而在调试时我无法切换到Delphi 7窗口,直到我将此应用程序移动到另一个桌面(我使用的是Windows 10).
还有其他方法可以在Delphi 7上运行吗?
这在后来的Delphi版本中通过引入TForm.PopupParent属性得到了解决.您只需删除fsStayOnTop样式,并将MainForm设置为PopupParent辅助表单.
但是,PopupParent在Delphi 7中不存在,因此您必须手动模拟它,通过覆盖CreateParams()辅助表单的虚拟方法来指定MainForm.Handle为TCreateParams.WndParent.