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

时间:2009-03-25 13:32:55

标签: delphi delphi-2009 vcl

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

ShowWindow(Handle, SW_HIDE);
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW );
ShowWindow(Handle, SW_SHOW);

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

2 个答案:

答案 0 :(得分:10)

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

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

Application.MainFormOnTaskbar := True;
Application.ShowMainForm := False;

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

答案 1 :(得分:5)

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

在创建表单之前,打开项目源并将 MainFormOnTaskBar ShowMainForm 设置为False。

Application.Initialize;
Application.MainFormOnTaskbar := false;
Application.ShowMainForm := false;
Application.CreateForm(TForm1, Form1);

然后在主表单上将以下代码添加到 FormActivate FormShow 事件中。

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;

我已经使用Dephi 2007和2009进行了测试。其他信息可用here