Stevie hat den kompletten Beispielcode schon gepostet.
Mehr brauchst Du nicht.
Du übergibst nur die Sortiervorgabe (Vergleichsfunktion) an die Sortiermethode und der Rest geht automatisch.
PS: Falls Du mal die Sortierung rumdrehen willst, kannst Du das z.B. so machen:
Delphi-Quellcode:
function CompareItem(Item1, Item2: Pointer): Integer;
begin
Result := Math.CompareValue(TMyObject(Item1).ArtNr, TMyObject(Item2).ArtNr);
if (Absteigend) then
Result := -Result;
end;
Und falls Du statt nach ArtNr nach etwas anderem Sortieren willst, kannst Du das einfach in der Funktion ändern. So könnte man z.B. auch Personen nach Vornamen aufsteigend und bei Gleichheit anschließend Alter absteigend sortieren.
Die Funktion muss nur eindeutig -1, 1 oder 0 zurück liefern. Zufallswerte wären natürlich problematisch.