Du liest in eine Variable "varNumParts" die Größe des Arrays ein und verwendest danach eine andere Variable "NumParts" um die Größe des Arrays zu bestimmen. Ich vermute die Variable "NumParts" ist Teil eines Records der noch nicht erzeugt wurde.
Delphi-Quellcode:
Strom.
Read(varNumParts, SizeOf(NumParts));
{...}
SetLength(varParts, NumParts); <--------------- Hier kommt dann spätestens die
AV, Programmabbruch