Hi jryan,
du weißt der Variablen temp nicht das Element selbst zu, sondern nur den Pointer auf das Element. Nun überschreibst du das obere Element, und versuchst anschließend die Sicherungskopie zuzuweisen. Da diese aber weiterhin auf das (nun überschriebene) obere Element zeigt, wird der gleiche Wert nochmal zugewiesen.
Du musst deshalb ein Element löschen und anschließend mit Insert eine Stelle höher wieder einfügen.
Weiters: anstatt der zwei if-Abfragen kannst du auch eine verwenden:
Delphi-Quellcode:
i := ListView1.ItemIndex;
if (i > 0) then
...
Greetz
alcaeus