Eine ImageList hat zwingend immer nur eine Auflösung. Das gibt die Windows-
API so vor, wenn am Ende für die Windows Controls halt ein HIMAGELIST
Handle benötigt wird.
Seit Rio gibt es aber die Kombination aus
TImageCollection und
TVirtualImageList. Dabei werden in der
TImageCollection unterschiedliche Auflösungen pro Icon hinterlegt und die
TVirtualImageList holt sich immer die zu ihrer Größe passenden.
Natürlich kannst du dir auch direkt aus der
TImageCollection ein Icon in der gewünschten Größe holen (
GetBitmap). Das wird dann sogar noch passend skaliert, falls es in der Größe nicht vorliegt.
Du kannst also deine bisherige ImageList durch eine
TVirtualImageList ersetzen. Die verbindest du mit einer
TImageCollection, in der du deine Bildchen ablegst. Die
TVirtualImageList hat auch noch den Vorteil, daß sie automatisch auf DPI-Änderungen des Owner-Forms reagiert, wenn die Anwendung denn dafür empfänglich ist. Das geht natürlich nur, wenn die
TVirtualImageList auf einem Form liegt. Die
TImageCollection kann aber auch auf einem Datenmodul untergebracht sein.