Ich hab das heute gebraucht, und eine schnelle Lösung gebastelt.
Vielleicht kann's ja sonst noch jemand gebrauchen:
Code: Alles auswählen
procedure TForm1.SortListView(Lv:TListView; Index:integer);
var StrLi: TStringList;
i: integer;
begin
StrLi := TStringList.Create;
if Index = 0 then
for i := 0 to Lv.Items.Count - 1 do StrLi.AddObject(Lv.Items[i].Caption, Lv.Items[i]) else
for i := 0 to Lv.Items.Count - 1 do StrLi.AddObject(Lv.Items[i].SubItems[Index - 1], Lv.Items[i]);
StrLi.Sort;
for i := 0 to StrLi.count - 1 do Lv.Items[i] := TListItem(StrLi.Objects[i]);
StrLi.free;
end;