Listview sortieren

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Benutzeravatar
theo
Beiträge: 10871
Registriert: Mo 11. Sep 2006, 19:01

Listview sortieren

Beitrag von theo »

Listview sortieren scheint noch nicht implementiert zu sein und ich bin mir auch nicht sicher, wie das in die LCL einzubringen ist, da z.B. Qt die Sortierung schon eingebaut hat.

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;

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Re: Listview sortieren

Beitrag von Giantics »

theo hat geschrieben:Ich hab das heute gebraucht, und eine schnelle Lösung gebastelt.
Vielleicht kann's ja sonst noch jemand gebrauchen:
Richtig gedacht! Die Methode kommt mir gerade recht!
Vielen Dank :-)

Antworten