I’ve been working with a program someone else has made and I wanted to change the icon.
The icon I have is 256×256. I used http://converticon.com/ to create the icon (from a bmp I think). I used the icon in Inno Setup to create an installer and it worked fine
So I go to Options -> Application and attempt to load it. However, Delphi 2007 gives me an error ‘The parameter is incorrect.’ with this info: https://i.stack.imgur.com/vRCgs.png
When I do the same thing in Delphi XE, it works and loads the icon and changes it on compile. I can’t use XE right now because the program uses a math parser that has a problem with unicode (thats something to fix for later haha)
So, what I did was open the project in XE, change the icon, save it, delete the dproj and open it in 2007. This works, compiles and displays the correct icon, but when I go to the project options, it gives me the same ‘The parameter is incorrect’ error.
The workaround isn’t a big deal, but I shouldn’t need to do it. Does anyone know why I can’t change the icon in Delphi 2007?
Edit: I just used that same converticon site to convert the 256×256 icon to 192×192 and smaller and now it works perfectly. Thanks for the answers
The "icon" file is actually a collection of images, at different resolution and using different encodings. When I’m creating my icons I’m making sure they don’t actually contain the 256×256 PNG-encoded version because development tools built before Windows Vista don’t understand that. And that includes your Delphi 2007 and my Delphi 7. I also remove the alpha-encoded 256×256 icon because it simply makes the file needlessly large.
You’ve got two fixes possible:
I personally never seen the 256×256 used in the real world, they’d take up huge amounts of space on user’s Desktop or in Windows Explorer.Edit to correct an error
If possible, always include the 256×256 image, Windows scales that down for everything above 64×64.
I always assumed Windows Explorer would show an image that’s based on the closest matching image size available in the ICO. That is, if a 128×128 image is necessary, Windows would use the 128×128 image if available, or scale down the 256×256 image if that’s available, or scale up the 96×96 image. Apparently that’s not so. I’ve just made a test icon consisting of several image formats, including 32, 48, 72, 96, 128 and 256 consisting of simple blobs of color (using the flood-fill tool). In Windows Explorer I cycled throw the various Display Modes, and it became apparent that starting with "Large Icon" (and that’s not very large) Windows will scale down the 256×256 icon, and if that’s not available, use the 48×48 icon, unscaled! The result is truly ugly and unexpected. The 72×72, 96×96 and 128×128 icons were simply ignored.
Thank you David for pointing this out.