![]() |
Welche Möglichkeiten gibt es in ListView alph. zu sortieren.
Bisher habe ich noch nie alphabetisch in ListView sortiert, also kenne ich mich da nicht so besonders aus.
Was ich kenne ist die Sortierung von Caption über SortType stText. Das Problem ist allerdings, daß ich Daten sortieren will. Habe ich folgende Daten: 01.12.2008 02.12.2007 dann wird das Datum mit dem Jahr 2008 an die erste Stelle gesetzt, da das Jahr erst an der letzten Stelle vorkommt. Meine bisherige Notlösung war es das Jahr zuerst zu schreiben 2007-12-02 2008-12-01 aber das gefällt mir nicht. Hat wer eine Idee wie man es trotzdem über die normale Schreibweise des Datums sortieren könne? |
Re: Welche Möglichkeiten gibt es in ListView alph. zu sortie
Du mußt selbst sortieren. stText führt eine (wie der Name nahelegt) ein dumme textuelle Sortierung durch.
|
Re: Welche Möglichkeiten gibt es in ListView alph. zu sortie
ListView1.CustomSort(...)
|
Re: Welche Möglichkeiten gibt es in ListView alph. zu sortie
Danke, hat mir weitergeholfen.
Für alle die über die Suche nach gleichen Problem hier gelandet sind, hier eine kurze Zusammenfassung. Es gibt zwei Möglichkeiten zu sortieren: Möglichkeit 1
Delphi-Quellcode:
// Zuerst
ListView1.ViewStyle := vsReport; ListView1.SortType := stData; ... //OnCompare procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer); begin if StrToDate(Item1.Caption) > StrToDate(Item2.Caption) then Compare := 1 else if StrToDate(Item1.Caption) < StrToDate(Item2.Caption) then Compare := -1 else Compare := 0; end; ... // Sortiert wird über Aufruf ListView1.AlphaSort; Möglichkeit 2
Delphi-Quellcode:
// Zuerst
ListView1.ViewStyle := vsReport; ... function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall; begin if StrToDate(Item1.Caption) > StrToDate(Item2.Caption) then Result := 1 else if StrToDate(Item1.Caption) < StrToDate(Item2.Caption) then Result := -1 else Result := 0; end; ... // Sortiert wird über Aufruf ListView1.CustomSort(@CustomSortProc, 0); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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