You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi隐藏主窗体后任务栏程序图标消失问题求助

Delphi隐藏主窗体后任务栏图标消失的解决办法

问题原因

你设置了Application.MainFormOnTaskbar := True,这种情况下Windows任务栏的程序图标与主窗体绑定,当主窗体执行Frmmain.Hide后,任务栏图标会随之消失。

解决方案

方案1:修改任务栏图标关联对象

在.dpr文件中将Application.MainFormOnTaskbar := True改为False,让任务栏图标与应用程序本身关联而非主窗体,此时即使主窗体隐藏,任务栏图标依然保留。

修改后的.dpr代码:

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := False; // 改为False
  Application.CreateForm(TFRMlogin, FRMlogin);
  Application.CreateForm(TFRMstatistics, FRMstatistics);
  Application.CreateForm(TFRMregister, FRMregister);
  Application.Run;
end.

注意:需确保其他窗体(如FRMsecond)的ShowInTaskbar属性设为False,避免任务栏出现多个图标。

方案2:不隐藏主窗体,改为最小化

若允许主窗体在后台最小化,直接替换执行代码:

FRMsecond.Show;
Frmmain.WindowState := wsMinimized; // 最小化而非隐藏

这样任务栏图标会保留,主窗体仅缩至任务栏,不影响FRMsecond的显示。

方案3:让FRMsecond拥有任务栏图标

若需要FRMsecond单独显示任务栏图标同时隐藏主窗体,可按以下操作:

  1. 将FRMsecond的ShowInTaskbar属性设为True
  2. 执行以下代码(需引用Windows单元):
FRMsecond.Show;
Frmmain.Hide;
SetWindowLongPtr(FRMsecond.Handle, GWL_HWNDPARENT, 0);
FRMsecond.ShowInTaskbar := True;

内容的提问来源于stack exchange,提问作者8legs tentacles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:39:56