In Delphi 2007, images are loaded in a TImageList at design time. This introduces the following problem:
- I have a folder containing the graphics I’m using in my application
- Whenever I want to change, say, the icon for ‘save’, I have to
- Change the graphic in the folder (for my own purposes)
- Iterate along all TImageLists in the application
- Change the graphic in the TImageList
Is there any way (component, compile script, …) to perform steps 2 and 3 automatically, that is, specify only paths of graphics at design time, creating a dependence on the actual graphic files?
You could create a descendant of TImageList and add that kind of logic there.
Since components referring to images inside a TImageList do that by index, it would be easiest to have your descendant to have a ImagePaths property of type TStrings that is formatted like this:
And maybe add a property BasePath of type string as well.
Then upon loading that component, it could automagically reload those images in memory.
You could even make it a design-time expert which loads the images in the designer.
–jeroen