Die Zeile
Delphi-Quellcode:
If length(SI_Achs_Array) < i_Ax_Drv_Nr then
SetLength(SI_Achs_Array, i_Ax_Drv_Nr);
Hast du aber drinnengelasen?
[add]
Ahhh, an deiner Stelle würde ich mit
If High(...) < i_Index then
oder
If Length(...) <= i_Index then
prüfen, da i_Index wohl direkt den 0-basierten Index darstellt (oder du hast im Zugriff das Pred vergessen) und i_Ax_Drv_Nr anscheinend ein 1-basierender Index ist.
Tipp: Aktiviere auch mal (bevor zu was änderst) in den Projektoptionen die Index-Prüfung.
Und ja, beim ersten Durchlauf wird das Array nicht vergrößerst, da i_Index vermutlich 0, Length auch 0 und somit
0 < 0
natürlich nicht zutrifft.