Hi!
Ich hab einen Sortieralgor. hir im forum gefunden und auf meine Bedürfnisse angepasst.
Jetzt siht der so aus:
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: 24: 25: 26: 27: 28:
| procedure TForm1.StringGridsortieren1(Feld: TStringGrid); var i, j, aRow, iSortKey: integer; TempRows: TStrings;
begin TempRows := TStringList.Create;
with Feld do begin for aRow := 2 to ZugGrid.RowCount - 1 do begin iSortKey := StrToDate(ZugGrid.Cells[5, aRow]); i := aRow - 1; while (i > 0) and (StrToInt(Cells[5, i]) > iSortKey) do begin for j := 0 to ColCount - 1 do TempRows.Add(Cells[j, i + 1]); Rows[i + 1] := Rows[i]; [i] := TempRows; TempRows.Clear; dec(i); end; end; end; TempRows.Free; end; |
Der Algor. sortiert alle Zeilen (von Row = 1) bis zum Ende nach der Spalte 5 (Col = 5) aufsteigend. Das Heist, die kleinste Zahl steht oben und die größte unten.
Ich möchte das gern genau anders herum machen, hab aber nich so sehr viel ahnung von Algorythmen und steig da noch nich richtig durch. Desweiteren soll er die Erste Spalte nicht mitsortieren. Auch hirbei seh ich nicht an welcher Stelle ich den Integer einen höher setzen soll.
Kann mir da jemand behilflich sein???
mfg
It´s not a bug, it´s a feature.