Entwickler-Ecke

Sonstiges (Delphi) - ListView Spalte sortieren


Sahroma - Mo 15.06.15 17:02
Titel: ListView Spalte sortieren
Hi zusammen,

habe da ein kleines Problem. Und zwar habe ich in meiner ListView 3 Spalten. Habe es bisher so das wenn man auf eine Spalte klickt von A nach Z sortiert wird. Aber wenn man nochmals auf die Spalte klickt sortiert er nicht in die andere Richtung (von Z nach A). Habe ich irgendetwas übersehen bzw. vergessen?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TVolltextsuche.LvErgebnisColumnClick(Sender: TObject;
  Column: TListColumn);
begin
if Column.Caption = '' then
  exit;
if lvErgebnis.Items.Count > 0 then begin
  ColumnToSort := Column.Index;
  if ColumnToSort = LastSorted then begin
    SortDirection := 1 - SortDirection;
    if Column.ImageIndex = 0 then
      Column.ImageIndex := 1
    else
      Column.ImageIndex := 0;
  end
  else begin
    if LastSorted <> -1  then lvErgebnis.Columns[LastSorted].ImageIndex := -1;
    SortDirection := 0;
    Column.ImageIndex := 1;
  end;
  LastSorted := ColumnToSort;
  (Sender as TCustomListView).AlphaSort;
  end;
end;


Gruß
Sahroma


Delete - Mo 15.06.15 21:26

- Nachträglich durch die Entwickler-Ecke gelöscht -


jaenicke - Di 16.06.15 07:30

Das sehe ich anders, bei einer Listview macht es keinen Sinn extern zu sortieren, da das unnötig langsam ist und das Sortieren ja schon vorgesehen ist.

Zum Problem:
Wie sieht denn deine Vergleichsmethode aus?
Ich arbeite immer mit 1 oder -1 als Faktor, sprich multipliziere zum Umkehren mit -1 und multipliziere das Ergebnis des Vergleichs ebenfalls einfach mit dem Faktor.


Delete - Di 16.06.15 18:42

- Nachträglich durch die Entwickler-Ecke gelöscht -