Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - ich möchte ein TListView nach mehrere Kriterien sortieren.


TheUnknown - So 04.07.04 14:38
Titel: ich möchte ein TListView nach mehrere Kriterien sortieren.
Moin Kinners,

ich möchte ein TListView nach mehrere Kriterien sortieren.

Beispiel:


Quelltext
1:
2:
3:
4:
5:
6:
7:
NAME | NACHNAME | TELENUMMER
----------------------------
Axel | Schmidtt | 030 / 4568
Hans | Bäumerly | 030 / 4587
Maxi | Minimann | 312 / 7894
Karl | Schmidtt | 030 / 1257
Gaby | Bäumerly | 789 / 5467


Nun die Problemstellung. Zuerst soll nach NACHNAME sortiert werden (wie das geht, weiss ich). Aber danach soll, wenn mehrere den selben Wert in NACHNAME haben nach NAME soriert werden (Ohne das die Ordnung in NACHNAME wieder verworfen geht!). Das bedeutet, ich will ZWEI SubItems gleichzeitig sortieren. Aber das bekomme ich einfach nicht hin! Ich hab schon das ganze Web abgesucht. Hat nicht jemand tierische Lust, mir den Sourcecode dafür zu posten!? ;-) WÄRE SPITZE!:-)

Ich habe schon versucht, erst nach NANE und dann sofort nach NACHNAME zu sortieren, aber das klappt nicht, der scheisst dann NAME wieder "durcheinander"...

Der Unknown


Keldorn - So 04.07.04 14:44


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
begin
  Compare := CompareText(Item1.SubItems[0],Item2.SubItems[0]);
  //wenn items gleich sind, eine weitere Spalte vergleichen
  if compare=0 then Compare := CompareText(Item1.Caption,Item2.Caption)
end;


ungetestet ;), aufruf mit listview1.alphasort

Mfg Frank


TheUnknown - So 04.07.04 15:20

Ausgezeichnet, Keldorn,

DAS war's! Dankeschön!