Vor allem ist es dann nur eine Zeile, so wie ich es in dem
anderen Thread auch vorgeschlagen hatte...
TrayIconX.IconIndex := ...;
Und schon bist du fertig. Also wozu willst du unbedingt eine derartig unsaubere und im Quelltexte sehr umständliche Herangehensweise benutzen...