如何在delphi中在程序开始时创建弹出窗体?

如何在delphi中在程序开始时创建弹出窗体?,delphi,Delphi,大家好 我想在应用程序运行时在主窗体上方显示该选项窗体。那么,如何在开始时在后台显示带有主窗体的选项窗体呢 感谢您的帮助。不要使用选项表单。在OnCreate或OnShow中创建自定义消息,如Const AM_ShowOptionForm=WM_APP+1并将消息发回主表单 在主窗体上添加消息处理程序,例如 Procedure RecieveOptionFormMessage(var Msg:TMessage); Message AM_ShowOptionForm begin Optio

大家好

我想在应用程序运行时在主窗体上方显示该选项窗体。那么,如何在开始时在后台显示带有主窗体的选项窗体呢


感谢您的帮助。

不要使用
选项表单。在
OnCreate
OnShow
中创建自定义消息,如
Const AM_ShowOptionForm=WM_APP+1
并将消息发回主表单

在主窗体上添加消息处理程序,例如

Procedure RecieveOptionFormMessage(var Msg:TMessage); Message AM_ShowOptionForm
begin
    OptionForm.ShowModal;
end;

可以使用激活
。必须将其包装在一些代码中,以防止在其他应用程序窗体关闭且主窗体再次激活时触发它

procedure TForm1.FormActivate(Sender: TObject);
Const
{$J+}
  SettingsShown : Boolean = false;
{$J-}
begin
  if SettingsShown = false then
  begin
    Form2.ShowModal;
    SettingsShown := True;
  end;
end; 

它与主窗体的弹出窗体类似,应该在后台显示。我尝试在主窗体的OnCreate或Onshow事件上创建选项窗体,但它只显示选项窗体:(我认为,对于任何自动弹出的表单,非模式表单都会更好,如果您打算使用模式表单,请确保您将在环境中遭受可怕的Z顺序错误,除非您有一个具有修复程序的Delphi版本(并且您使用修复程序,设置窗口的PopupParent),或者您编写了一些特殊代码来解决它。