Ich schätze mal, du hast die Eigenschaft "RowSelect" im ListView nicht auf "true" gestellt, insofern wird die Zeile vielleicht nicht ausgewählt, wenn du auf das Subitem klickst? Damit wäre dann der ItemIndex=-1 und die Excpetion kommt völlig zurecht.
Generell solltest aber sowieso noch ein
if ListView1.ItemIndex>=0 then
vorschalten.