任务栏上的图标错误

时间:2015-10-21 22:00:07

标签: delphi icons delphi-xe2 taskbar

WIndows 10中的Delphi XE2应用程序,在Parallels V11下运行。该项目是通过复制另一个,删除.dsk和.local以及更改表单和pas文件名来启动的。 dpr和.dproj已被编辑。

我更改了表单和Project | Options中的图标。如果" Application.MainFormOnTaskbar:= True;"是否存在。任务栏上显示的图标是原始项目中的图标。如果程序在IDE中运行或独立运行,则没有区别。我已关闭并重新启动XE和Win 10。

如果我在另一台机器(Win 7)上运行程序,任务栏上会显示正确的图标。

2 个答案:

答案 0 :(得分:0)

因为在任务栏和主窗口上呈现为按钮的窗口是两个不同的窗口。

一个是Application.Handle而另一个是Application.MainForm.Handle

您有两种选择。

  1. 更改IDE的EXE项目选项中的图标 enter image description here

  2. 使用Windows GDI API

  3. 执行此操作

     var hIcon: THandle;
    
     hIcon := LoadIcon(MainInstance, PChar('Whatever_Taskbar_Icon_Resource_Name'));
     if hIcon > 0 then
           Application.Icon.Handle := hIcon;
    
    1. 另外一个奇特的选择是你的ico文件包含截然不同的分辨率/ ColorDepth组合的图像。有时会忘记图标文件不是图像,而是图像阵列。像IrfanView,XnView,Imagine等好的图像查看器应该能够显示.ico文件包含的数组的所有图像。

答案 1 :(得分:0)

  

重新启动计算机后问题就消失了。

嗯,是的。 Windows缓存图标。重启后,它们会刷新。