![]() |
Listview sortieren
Hi,
ich hab eine ListView (vsReport) mit mehreren Spalten. Wenn man jetzt auf eine der Spalten klicke, soll das Programm die Elemente der Spalten absteigend (alles nur zahlen) ordnen ! Ich hab kein Plan, wie ich das machen soll ! Welchen Sortier-Algorithmus soll ich da benutzen ???? devnull |
Re: Listview sortieren
Hallo
Die Onlinehilfe hast du schon gefunden? Unter Listview -> oncolumnclick, oncompare gibts ein Beispiel wie es geht. in deinem Fall kannst du comparetext nicht verwenden, wenn du Zahlenstrings ersetzen willst, sondern erstmal in Zahlen wandeln. Wenn du nicht sehr viele Items hast, wird sich das nicht groß geschwindigkeitsmäßig bemerkbar machen. Mfg Frank |
Re: Listview sortieren
![]() |
Re: Listview sortieren
jetzt hab auch ich das begriffen ...
Delphi-Quellcode:
Hoffe, dass es jetzt nich ganz falsch is
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin case ParamSort of 0 : Result := -CompareText(Item1.SubItems.Text,Item2.SubItems.Text); 1 : Result := CompareText(Item1.SubItems.Text,Item2.SubItems.Text); 2 : Result := -CompareText(Item1.Caption,Item2.Caption); 3 : Result := CompareText(Item1.Caption,Item2.Caption); end; end; procedure TForm1.ListeColumnClick(Sender: TObject; Column: TListColumn); var ColumnToSort: Integer; begin ColumnToSort := Column.Index; case ColumnToSort of 1 : begin if posVZ [1] = true then begin Liste.CustomSort(@CustomSortProc, 0); posVZ [1] := false; end else begin Liste.CustomSort(@CustomSortProc, 1); posVZ [1] := true; end; end; else begin if posVZ [2] = true then begin Liste.CustomSort(@CustomSortProc, 2); posVZ [2] := false; end else begin Liste.CustomSort(@CustomSortProc, 3); posVZ [2] := true; end; end; end; end; :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz