Erst mal ein Hallo in die Runde,
also ... ganz fix erklärt.
Ich habe ein StringGrid und auf den Spalten der Zeile 0 (FixedRows=1) einen Sortieralgorithmus. Je nach click auf die Spaltenüberschrift wird dann die Spalte absteigend/aufsteigend sortiert. Funktioniert soweit alles perfekt .. bis auf eine Kleinigkeit.
Spalte 0 z.B. beinhaltet eine 'ID' (Integer) und die StringList wird textbasiert sortiert.
Somit kommt bei aufsteigender Sortierung die ID "10" vor der ID "1". Das is natürlich nich das was ich will.
Wie kann ich das ändern?
Hier bissl Quellcode:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function Sortieren(List: TStringList; Index1, Index2: Integer): Integer; begin if Absteigend1.Checked = true then if List[Index1] = List[Index2] then Result := 0 else if List[Index1] > List[Index2] then Result := -1 else if List[Index1] < List[Index2] then Result := 1;
if Aufsteigend1.Checked = true then if List[Index1] = List[Index2] then Result := 0 else if List[Index1] > List[Index2] then Result := 1 else if List[Index1] < List[Index2] then Result := -1; end; |
Delphi-Quelltext
1: 2:
| MyList.CustomSort(Sortieren); |
Wäre sehr nett wenn das jemand was zu wüsste.
Vielen Dank im voraus.
lg