Autor Beitrag
OliverN_26
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Do 15.10.09 04:50 
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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
// Die CustomSort-Funktion zum Sortieren
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;



ausblenden Delphi-Quelltext
1:
2:
// Der Aufruf aus einer Funktion heraus
MyList.CustomSort(Sortieren);


Wäre sehr nett wenn das jemand was zu wüsste.

Vielen Dank im voraus.

lg
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 15.10.09 08:00 
Du musst eine inhaltsbasierte Vergleichsfunktion schreiben (z.B. String aufteilen)

_________________
Markus Kinzler.
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Do 15.10.09 16:32 
aber wie mache ich das?
Ich blicke im moment noch nich so ganz wie ich den String zerlege und dann aber trotzdem noch die ganze Zeile vergleichen kann.

vielen Dank im voraus.