Hallo BungeeBug,
das ist genau in den beiden Zeilen:
Delphi-Quellcode:
SetLength(MyHashArray,i);
MyHashArray[i] := //...
in Deinem Code der Fall.
Entweder solltest Du
SetLength(MyHashArray, Succ(i));
verwenden oder gleich dem Rat von Peter Lustig folgen und die Länge nur einmalig zu Beginn setzen.