我一直在与其他人制作的程序合作,我想改变图标。
我的图标是256x256。我使用http://converticon.com/创建了图标(我认为是bmp)。我使用Inno Setup中的图标创建了一个安装程序,它运行良好
所以我去选项 - >应用程序并尝试加载它。但是,Delphi 2007给出了一个错误'参数不正确'。使用此信息:http://i.stack.imgur.com/vRCgs.png
当我在Delphi XE中做同样的事情时,它会工作并加载图标并在编译时更改它。我现在不能使用XE,因为该程序使用了一个unicode问题的数学解析器(以后可以解决这个问题)
所以,我所做的是在XE中打开项目,更改图标,保存它,删除dproj并在2007年打开它。这可以工作,编译并显示正确的图标,但是当我转到项目选项时,它给了我相同的'参数不正确'错误。
解决方法不是什么大问题,但我不应该这样做。有谁知道为什么我不能在Delphi 2007中更改图标?
编辑:我刚刚使用相同的converticon网站将256x256图标转换为192x192及更小版本,现在它完美无缺。谢谢你的回答
答案 0 :(得分:4)
“icon”文件实际上是一组图像,具有不同的分辨率并使用不同的编码。当我创建我的图标时,我确保它们实际上并不包含256x256 PNG编码版本,因为在Windows Vista之前构建的开发工具不明白。这包括你的Delphi 2007和我的Delphi 7.我还删除了alpha编码的256x256图标,因为它只会使文件不必要地大。
你有两个可能的修复:
如果可能,请始终包含256x256图像,Windows会将其缩小至64x64以上的所有内容。
我一直认为Windows资源管理器会显示基于ICO中可用的最接近匹配图像大小的图像。也就是说,如果需要128x128图像,Windows将使用128x128图像(如果可用),或者缩小256x256图像(如果可用),或者放大96x96图像。显然不是这样。我刚刚创建了一个由多种图像格式组成的测试图标,包括32,48,72,96,128和256,由简单的颜色块组成(使用泛光填充工具)。在Windows资源管理器中,我循环播放各种显示模式,很明显,从“大图标”(并且不是很大)开始,Windows将缩小256x256图标,如果不可用,请使用未缩放的48x48图标!结果真是丑陋和意外。简单地忽略了72x72,96x96和128x128图标。
感谢David指出这一点。
答案 1 :(得分:2)
较早版本的Delphi不支持256px Vista图标。我相信2010年并不支持他们所以我猜这个限制是在XE中修复的。
使用较旧的Delphi时,您需要将256px图标保留在IDE之外。您仍然可以从命令行编译器构建一个带有256px图标的可执行文件 - 我在从Delphi 6升级之前就已经这样做了。但要做到这一点,需要使用一个称职的资源编译器,例如Microsoft。
答案 2 :(得分:0)
2007将允许您选择具有256像素图像的图标。这是我试过的:
Delphi XE的默认图标包含多种图像尺寸,包括256像素图像。
如果我使用resource editor从Delphi XE应用程序中提取图标,我可以使用IDE的项目选项将该图标添加到Delphi 2007应用程序中。我没有收到错误,图标图像在Windows Vista / 7中使用不同大小的资源管理器显示为预期。
如果我使用与Delphi 2007相同的图标并使用IcoFX删除256像素图像以外的所有图像尺寸,并尝试再次选择它,那么我会收到错误。
尝试创建包含其他图片尺寸的.ico,看看它是否适合您。