隐藏Delphi 2009应用程序中的主窗体

Jam*_*mes 8 delphi vcl delphi-2009

下面的代码在Delphi 7中运行正常.但是,在Delphi 2009中,表单仍然隐藏,但任务栏上的按钮现在出现了.

ShowWindow(Handle, SW_HIDE);
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW );
ShowWindow(Handle, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)

上面的代码在FormCreate方法中调用.

Jam*_*mes 10

原来我们看到任务栏上的应用程序窗口是一个简单的设置,类似于stukelly的答案,但并不完全.

要使主窗体显示在任务栏上并隐藏您应用的应用程序菜单:

Application.MainFormOnTaskbar := True;
Application.ShowMainForm := False;
Run Code Online (Sandbox Code Playgroud)

表单背后没有代码创建或任何必需的代码.


stu*_*lly 5

在创建表单之前,需要将ShowMainFormMainFormOnTaskBar属性设置为False.

在创建表单之前,打开项目源并将MainFormOnTaskBarShowMainForm设置为False.

Application.Initialize;
Application.MainFormOnTaskbar := false;
Application.ShowMainForm := false;
Application.CreateForm(TForm1, Form1);
Run Code Online (Sandbox Code Playgroud)

然后在您的主窗体上将以下代码添加到FormActivateFormShow事件.

procedure TForm1.FormActivate(Sender: TObject);
begin
 // hide taskbar button
 ShowWindow(Application.Handle, SW_HIDE);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
 // hide taskbar button
 ShowWindow(Application.Handle, SW_HIDE);
end;
Run Code Online (Sandbox Code Playgroud)

我已经使用Dephi 2007和2009进行了测试.此处提供更多信息.