Moin Mat,
erst einmal herzlich willkommen in der Delphi-PRAXiS.
Hier mal ein Beispiel, wie Du eine Zeile mit Hilfe eines Buttons nach oben verschieben kannst.
Delphi-Quellcode:
procedure TfrmMAIN.Button1Click(Sender: TObject);
var
liTo : TListItem;
begin
// Ist keiner oder der oberste Eintrag ausgewählt gibt's nichts zu tun
if ListView1.Selected = nil then exit;
if ListView1.Selected.Index = 0 then exit;
// Eine neue Zeile über der markierten einfügen
liTo := ListView1.Items.Insert(ListView1.Selected.Index-1);
// die gewählte Zeile dort hinkopieren
liTo.Assign(ListView1.Selected);
// und dann löschen
ListView1.Items.Delete(ListView1.Selected.Index);
end;