- you can use multiple images, that you can "TImage.LoadFromFile"
=> Then you have more loading time
=> Then you can store the images on Form's - but they overlapped eventually
=> Then you can exchange the images from each load time/update of your software
=> Then you can load/un-load the images which means, allocate/de-allocate memory
- you can use one or multiple tile images, load it per LoadFromFile, store it into a background Canvas/Handle, and BitBlt (copy) the background data into the foreground (enabled/viewing view port on TForm or other TComponent)
=> Then you can gzip/zlib (compress) these file/s to save storage space
=> Then you can copy in-Memory data into background Canvas/foreground Canvas in time faster than if you use TImage.LoadFromFile
=> Then you need a little bit lesser memory
=> Then you can hold one copy of the image in the memory
=> Eventually, you need more memory.
On tile images, you have to know the exact position of the tiles - when not, then you have eventually image garbage on the device where you display/print the image's/tile's.