AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Welche Möglichkeiten gibt es in ListView alph. zu sortieren.
Thema durchsuchen
Ansicht
Themen-Optionen

Welche Möglichkeiten gibt es in ListView alph. zu sortieren.

Ein Thema von Popov · begonnen am 27. Sep 2008 · letzter Beitrag vom 27. Sep 2008
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

Welche Möglichkeiten gibt es in ListView alph. zu sortieren.

  Alt 27. Sep 2008, 16:28
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?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Welche Möglichkeiten gibt es in ListView alph. zu sortie

  Alt 27. Sep 2008, 16:35
Du mußt selbst sortieren. stText führt eine (wie der Name nahelegt) ein dumme textuelle Sortierung durch.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Welche Möglichkeiten gibt es in ListView alph. zu sortie

  Alt 27. Sep 2008, 16:39
ListView1.CustomSort(...)
Thomas
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

Re: Welche Möglichkeiten gibt es in ListView alph. zu sortie

  Alt 27. Sep 2008, 20:56
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);
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz