Ich habe die Schleife dahin verändert:
for i := 0 to length(ArrayNoten) do
also -1 weggelassen.
Warum ?
Wenn Du bei length(ArrayNoten) die -1 weglassen willst,
dann solltest Du besser Low(ArrayNoten) to High(ArrayNoten) schreiben.
Ohne -1 gibt es jetzt einen Überlauf 0,1,2,3,4,5,6 sind nämlich 7 Array-Zugriffe, und keine 6.