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