【问题标题】:How to create pop up form at start of program in delphi?如何在delphi程序开始时创建弹出表单?
【发布时间】:2011-08-02 11:54:56
【问题描述】:

大家好,

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

感谢您的帮助。

【问题讨论】:

  • 它应该在后台显示主窗体的弹出窗体。
  • 我尝试在主表单的 OnCreate 或 Onshow 事件上创建选项表单,但它只显示选项表单。 :(

标签: delphi


【解决方案1】:

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

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

【讨论】:

  • 我认为对于任何自动弹出的表单来说,非模态表单会更好,如果您要使用模态表单,请确保您最终会遭受可怕的 Z-除非你有一个有修复的 Delphi 版本(并且你使用修复,设置窗口的 PopupParent),或者你编写了一些特殊的代码来解决它。
【解决方案2】:

不要在OnCreate 或OnShow 中使用OptionForm.ShowModal,而是创建一个自定义消息,例如Const AM_ShowOptionForm = WM_APP +1,然后将消息发布回您的主窗体。

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

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

【讨论】:

    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 2012-10-02
    • 1970-01-01
    相关资源
    最近更新 更多