In Projektoptionen bitte mal Indexprüfung aktivieren.
Zitat:
Delphi-Quellcode:
for i := low(ArrAngKps) to Pred(high(ArrAngKps)) do
for j := succ(i) to high(ArrAngKps) do
if ArrAngKps[j].CrtDatum > ArrAngKps[j + 1].CrtDatum then
j := ... to high(ArrAngKps)
und
ArrAngKps[j + 1]
muß zwangsläufig knallen.
High+1 ist nicht mehr im Array drin.
Außerdem vergleichst du dort J mit J+1, aber tauschst I mit J.
Und im zweiten Versuch verlgichst du I mit J, aber tauschst J mit J+1.
Man sollte da natürlich nur das tauschen, was vorher auch verglichen wurde, da sonst das Vergleichsergebnis nicht unbedingt zu den getauschten Items passt.