Delphi 无论Form1(主窗体)的状态如何,如何使Form2可见?

Delphi 无论Form1(主窗体)的状态如何,如何使Form2可见?,delphi,delphi-xe,Delphi,Delphi Xe,使用DelphiXE(1),我有一个带有两个表单的应用程序 表格1是主要表格 Form2是一种类似msn的通知(幻灯片显示通知的表单随后消失) 在最大限度地减少form1之前,工作平稳 问:我如何使form2显示可见,即使form1(main)最小化到任务栏您可以使用CreateParams覆盖默认行为。大概是这样的: 在表单中添加声明 protected procedure CreateParams(var Params: TCreateParams); override; 添加

使用DelphiXE(1),我有一个带有两个表单的应用程序

表格1是主要表格

Form2是一种类似msn的通知(幻灯片显示通知的表单随后消失)

在最大限度地减少form1之前,工作平稳


问:我如何使form2显示可见,即使form1(main)最小化到任务栏

您可以使用CreateParams覆盖默认行为。大概是这样的:

在表单中添加声明

  protected
    procedure CreateParams(var Params: TCreateParams); override;
添加一个过程

procedure TMyForm.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);

  with Params do
  begin
    Style := WS_POPUP or WS_BORDER;
    ExStyle := WS_EX_TOPMOST or WS_EX_NOACTIVATE;
    WndParent := 0;
  end;
end;

可以使用CreateParams覆盖默认行为。大概是这样的:

在表单中添加声明

  protected
    procedure CreateParams(var Params: TCreateParams); override;
添加一个过程

procedure TMyForm.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);

  with Params do
  begin
    Style := WS_POPUP or WS_BORDER;
    ExStyle := WS_EX_TOPMOST or WS_EX_NOACTIVATE;
    WndParent := 0;
  end;
end;

我猜form1是您的主窗体,因此模仿它意味着最小化应用程序。我想这是没有办法的。除非form2成为主窗体并创建form1,否则在不关闭应用程序的情况下无法关闭form2。我将在delphi中查找如何执行Toast通知,听起来与您要查找的内容非常接近。form2实际上未关闭它位于它开始滑动时needed@Guido这根本不是真的。在win32 Term中,使第二个窗体成为一个无主工具窗口。我猜form1是您的主窗体,因此模仿它意味着最小化应用程序。我想这是没有办法的。除非form2成为主窗体并创建form1,否则在不关闭应用程序的情况下无法关闭form2。我将在delphi中查找如何执行Toast通知,听起来与您要查找的内容非常接近。form2实际上未关闭它位于它开始滑动时needed@Guido这根本不是真的,在win32 Terms中使第二个窗体成为一个无主工具窗口不要让桌面成为您窗口的所有者,它应该是0(我太匆忙了)。不要让桌面成为您窗口的所有者,它应该是0(我太匆忙了)。