Die icons selber liegen dabei in einem festen Ordner und sollen erst zur Laufzeit ausgelesen und dann ggf. in der Listview angezeigt werden.
Na dann ist das doch gar kein Problem. Du führst intern z.B. eine StringList, in die du die Pfade beim Einfügen der Bilder in die ImageList einträgst. Beim Entfernen/Ersetzen passt du die Pfade in der StringList entsprechend an.
Mit ImageList-Index = StringList-Index ist das auch einfach in der Handhabung:
Delphi-Quellcode:
// Pfad ermitteln
Pfad := StringList[ImageList_Index];
Je nach Anzahl der Icons kannst du auch alle zur Designzeit in die ImageList geben und zur Laufzeit nur noch den entsprechenden Index der ListView zuweisen. Das ist vermutlich das einfachste.