Der Code von Sir Rufo ist zum Sortieren eines Array gedacht und dazu müsstest Du die Arrayelemente verschieben.
Da Du aber scheinbar nicht das Array sortieren möchtest, entgegen der Überschrift, sondern nur die Rangfolge der Werte bestimmen möchtest und in SortListNumber hinterlegen ist dies nicht der richtige Algo für Dich.
Auf die Schnelle würde ich dies so lösen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
liZ1: Integer;
liZ2: Integer;
lLowerCount: Integer;
lHigh: Integer;
begin
lHigh := Length(DynArray) - 1;
for liZ1 := 0 to lHigh do
begin
lLowerCount := 0;
for liZ2 := 0 to lHigh do
begin
if (DynArray[liZ2].Kriterium < DynArray[liZ1].Kriterium) then
begin
Inc(lLowerCount);
end;
end;
DynArray[liZ1].SortListNumber := lLowerCount;
end;
end;
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.