![]() |
ListView "extern" sortieren
Hi,
ich habe mit folgendem Code die Sortierung für meine ListView bewerkstelligt: ![]() Nun möchte ich bei einem Button.Click-Ereignis eine Spalte absteigend sortieren lassen. Wie kann ich das machen? Ich habe den Anruf ListView.CustomSort(@CustomSortProc, Spalte); probiert, jedoch wird die Spalte dann nur aufsteigend sortiert. Gruß Yheeky |
Re: ListView "extern" sortieren
Hi,
Schau dir mal die letzte Zeile in dem Code an... nach dem Aufruf der
Delphi-Quellcode:
passiert nochwas, nämlich :
ListView.CustomSort(@CustomSortProc, Spalte);
Delphi-Quellcode:
Das ändert bei jedem Klick die Sortierreihenfolge. Das muss Du auch beim Aufruf mit dem Button mit reinschreiben...{ Set the sort order for the column} LvSortOrder[Column.Index] := not LvSortOrder[Column.Index]; Gruß :hi: |
Re: ListView "extern" sortieren
Die Sortierreihenfolge soll ja nicht verändert werden. Diese soll immer absteigend sein...
|
Re: ListView "extern" sortieren
Hallo Yheeky,
du kannst es ja mal mit diesem Code versuchen.
Delphi-Quellcode:
Ein + vor CompareText sollte aufsteigend sortieren, ein - absteigend.
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin Result := -CompareText(Item1.Caption,Item2.Caption); end; procedure TForm1.Button1Click(Sender: TObject); begin ListView1.CustomSort(@CustomSortProc, Spalte); end; Tschüß Markus |
Re: ListView "extern" sortieren
In deinem Code bringt die Variable ParamSort doch überhaupt nichts, oder seh ich das falsch?! Die wird in der Funktion ja überhaupt nicht behandelt. Geht demzufolge auch leider nicht bei mir.
Habe die Funktion jetzt so geändert. Nun funktioniert´s:
Code:
Danke trotzdem!
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin if ParamSort = 0 then Result := -CompareText(Item1.Caption,Item2.Caption) else Result := -CompareText(Item1.SubItems[ParamSort], Item2.SubItems[ParamSort]); end; Gruß Yheeky |
Re: ListView "extern" sortieren
Woran liegt es, dass nur die erste spalte (Column[0]) bei einem klick drauf sortiert wird?
eigentlich sollte es doch bei allen funktionieren! ich habe den code unverändert vom obigen link (swissdelphicenter) genommen.... Gruß, dopeline |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 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