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

发布于 2024-07-15 22:55:48 字数 284 浏览 8 评论 0原文

下面的代码在 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方法中调用的。

The following code works fine in Delphi 7. However, in Delphi 2009 the form does remain hidden but the button on the taskbar is now appearing.

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

The above code is called in the FormCreate method.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

是伱的 2024-07-22 22:55:48

事实证明,我们在任务栏上看到应用程序窗口的原因是一个简单的设置,类似于 Stukelly 的答案,但不完全一样。

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

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

窗体创建后无需任何代码或任何所需的内容。

Turns out the reason we were seeing the Application window on the taskbar was a simple setting similar to stukelly's answer but not quite.

To get the main form to appear on the task bar and hide the application menu you apply:

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

No code behind the form create or anything required.

对风讲故事 2024-07-22 22:55:48

您需要设置 ShowMainForm 和 MainFormOnTaskBar在创建表单之前将属性设置为 False。

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

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

然后在主窗体上将以下代码添加到 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;

我已经使用 Dephi 2007 和 2009 进行了测试。更多信息可在此处获取。

You need to set the ShowMainForm and MainFormOnTaskBar properties to False before the form is created.

Open your project source and set MainFormOnTaskBar and ShowMainForm to False, before the form is created.

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

Then on your main form add the following code to the FormActivate and FormShow events.

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;

I have tested with Dephi 2007 and 2009. Additional information is available here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文