如何在任务栏Delphi 2010中更改应用程序图标

Sid*_*ang 5 delphi icons taskbar delphi-2010

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

Project > Option > Applications > Load Icon
Run Code Online (Sandbox Code Playgroud)

任务栏中的图标在许多边框样式中都发生了很好的变化:= bsNone或bsSingle或bsSizeable或bsSizeToolWin或bsToolWindow.但是当我使用BorderStyle:= bsDialog时,图标没有改变.

请不要告诉我使用:

Application.Icon.LoadFromFile(extractfilepath(application.exename) + '\myicon.ico');
Run Code Online (Sandbox Code Playgroud)

我想只提交一个EXE文件.

PS:我使用Embarcadero Delphi 2010

Dav*_*nan 6

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

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

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