Es mußt ja keine ImageList sein, wobei du dafür das Bild natürlich vorher auch umwandeln könntest.
Wie wäre es mit mehreren TPngImage-Instanzen?
PS: Daß man eine PNG-Datei nicht direkt in ein TBitmap (BMP) laden kann, sollte schon klar sein.
Relative Pfade sind eh keine gute Lösung.
Wobei sich hier gut machen würde, wenn die Bilder in die Resourcen verschoben werden.
Aber zumindestens die Idee die Bilder schon bei Programmstart zu laden und dann nut noch zuzuweisen, ist nicht zu unterschätzen.
Warum erstellst du die Timer eigentlich dynmaisch, wo man das auch die
DFM-Loader machen lassen könnte.