【问题标题】:How to change application icon within taskbar Delphi 2010如何更改任务栏中的应用程序图标 Delphi 2010
【发布时间】:2013-08-12 05:39:52
【问题描述】:

我使用自己的图标(32x32 16 位 EGA)更改我的应用程序的图标:

Project > Option > Applications > Load Icon

任务栏中的图标在许多边框样式中更改得非常好:= bsNone 或 bsSingle 或 bsSizeable 或 bsSizeToolWin 或 bsToolWindow。 但是当我使用 BorderStyle := bsDialog 时,图标没有改变。

请不要告诉我使用:

Application.Icon.LoadFromFile(extractfilepath(application.exename) + '\myicon.ico');

因为我只想提交一个 EXE 文件。

PS:我使用 Embarcadero Delphi 2010

【问题讨论】:

  • 这是设计使然。您不习惯在主表单中使用bsDialog 样式。您可以使用例如bsSingle 并删除最小化/最大化按钮以获得相同的结果,但对于 bsDialog 样式的窗口,您将不会获得图标。
  • 有一个关于此的 QC,Application and/or Form icon not shown with bsDialog。它是按设计关闭的。
  • @LU RD :这意味着我们对此无能为力?
  • 按照大卫在他的回答中建议的去做。您可以在 TImageList 之类的资源中包含图标,以避免从磁盘加载。

标签: delphi icons delphi-2010 taskbar


【解决方案1】:

图标是与任务栏按钮关联的窗口的图标。因此,将 Application.MainFormOnTaskbar 设置为 True,它就是主窗体图标。 False 时为应用程序隐藏窗口的图标。因此,要在主窗体上的任务栏上有不同的图标,您需要 MainFormOnTaskbar 为 False,并为 Application.Icon 分配不同的图标。这似乎是解决此问题的简单方法。

如果我记得 VCL 只设置一种尺寸的图标。根据我的经验,最好自己正确完成这项工作并直接发送 WM_SETICON 消息来设置小图标和大图标。

至于您的图标所在的位置,请将它们作为资源链接到您的可执行文件。我避免使用图像列表,因为我失去了对原始 .ico 文件的控制,但这可能只是我很挑剔。如果您愿意,请随意使用图片列表。

【讨论】:

  • 在 XE5 + windows 7 中,Application->Icon->LoadFromFile 将所有图标设置为 32x32 图标的调整大小版本;即使您的图标文件确实包含 24x24(角)、48x48(alt-tab、任务栏)、256x256(桌面)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多