【问题标题】:How to not show icon in taskbar for splash screen如何在启动画面的任务栏中不显示图标
【发布时间】:2019-08-22 15:32:07
【问题描述】:

我正在使用来自this question 的代码在 Delphi 中创建启动画面。

看起来像这样:

begin

  SplashForm := TSplashForm.Create(nil)

  Application.Initialize;

  //create your forms, initialise database connections etc here
  Application.CreateForm(TForm1, Form1);

  if Assigned(SplashForm) then
    SplashForm.OkToClose := True;

  Application.Run;

end.

出于技术原因,我保留在项目文件中

Application.MainFormOnTaskbar := False;

会发生什么情况是在启动屏幕的任务栏中显示一个图标,然后随着启动屏幕关闭,该图标消失,然后该图标重新显示在任务栏中(对于主窗体)。

如何防止在显示初始屏幕/表单时显示图标? (这样图标只会在显示主窗体时显示一次)。

【问题讨论】:

  • 你的启动表单有标题栏吗?如果是这样,则将其删除。还要延迟给你的应用程序一个标题,直到启动屏幕关闭。
  • 没有。边框样式 = bsNone。实际上我没有设置标题(我从示例中删除了该代码),即使使用 Title = '' 也没有什么区别。
  • 好的。这将在 Windows 7 中工作 - 我最后一次尝试它。猜猜它在 Windows 10 中不起作用。
  • 您是否尝试过涉及覆盖 createparams 的答案。例如。喜欢stackoverflow.com/questions/261601/…
  • 感谢您的参考。覆盖 CreateParams 对我没有帮助,但 Scalabium 软件的回答效果很好。

标签: delphi splash-screen taskbar


【解决方案1】:

感谢@Sertac 将我指向this 相关问题。覆盖 CreateParams 对我没有帮助,但是,以下答案有效:

来源:http://www.scalabium.com/faq/dct0096.htm

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_HIDE);
  SetWindowLong(Application.Handle, GWL_EXSTYLE,
    GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
  ShowWindow(Application.Handle, SW_SHOW);
end;

【讨论】:

  • 这不会只隐藏图标,但也许你的意思是整个任务按钮开始,而不仅仅是它的图标。
猜你喜欢
  • 1970-01-01
  • 2021-12-17
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
相关资源
最近更新 更多