Hallo Millo,
ich kenne die tShellListView nicht genau aber wahrscheinlich liegt es daran in welcher Reihenfolge Du die Items löscht.
Stell Dir mal vor Du hast eine StringListe mit 5 Items. Wenn Du so vorgehst wie in dem Code oben dann löscht Du von oben nach unten. Das Problem dabei ist das Du wenn Du das erste Item gelöscht hast alle folgenden Items nach "oben rutschen" und somit das zweite Item nun an der ersten Position der Liste zu finden ist das vorher dritte nur das zweite ist... usw. Wenn Du nun das 4. Item ansprechen willst ist es nicht mehr an der 4 Position zu finden.
Deshalb empfielt es sich immer die Liste von unten nach oben zu durchlaufen!
Gruß
TINO