Schade das niemand eine Antwort für mich parat hatte. bin jedenfalls auf folgende Lösung gekommen:
Item in der Listview hoch:
Delphi-Quellcode:
procedure TfrmMain.upbtnClick(Sender: TObject);
var
Litem : TListViewItem;
idx:Integer;
begin
if not Assigned(Listview1.Selected) then Exit;
idx := Listview1.Selected.Index;
if idx > 0 then
try
Listview1.BeginUpdate;
Litem := Listview1.Items.Insert(idx-1);
with TListViewItem(Listview1.Items.Item[idx+1]) do
begin
LItem.Objects.FindObjectT<TListItemText>('Titel').Text
:= Objects.FindObjectT<TListItemText> ('Titel').Text;
// in meinem Fall hatte jedes Listview Item mehrere Objekte
end;
Listview1.Items.Delete(idx+1);
Listview1.ItemIndex := idx-1;
finally
Listview1.EndUpdate;
end;
end;
Item in der Listview runter:
Delphi-Quellcode:
procedure TfrmMain.downbtnClick(Sender: TObject);
var
Litem : TListViewItem;
idx:Integer;
begin
if not Assigned(Listview1.Selected) then Exit;
idx := Listview1.Selected.Index;
if idx < Listview1.Items.Count-1 then
try
Listview1.BeginUpdate;
Litem := Listview1.Items.Insert(idx+2);
with TListViewItem(Listview1.Items.Item[idx]) do
LItem.Objects.FindObjectT<TListItemText>('Titel').Text
:= Objects.FindObjectT<TListItemText> ('Titel').Text;
end;
Listview1.Items.Delete(idx);
Listview1.ItemIndex := idx+1;
finally
Listview1.EndUpdate;
end;
end;
Vielleicht hilft es dem ein oder anderen.