Was genau willst Du mit dieser Zeile erreichen?
if (sr.Attr and faAnyFile) = sr.Attr then
Wo im Code ist etwas von einer ListView zu sehen? Der Rest scheint korrekt, nur solange wir nicht die Ereignisse wissen, die bis zum ListView-Eintrag führen, lässt sich wenig sagen
...
...