Hmm, also was mich wundert ist folgendes:
Du hast 22 Zeilen in der Memo und willst 20 Sterne erzeugen.
Star[1].PosX := StrToInt(MemoLoadPos.Lines[2]);
Star[1].PosY := StrToInt(MemoLoadPos.Lines[3]);
Müssten dir da nicht die Zeilen ausgehen? Versuch den Pos fixe Werte erstmal zuzuweisen, es könnte ja auch sein, dass die Einträge in der Memo sich nicht in einen Integer konvertieren lassen. (Da ich die Einträge nicht sehen kann nur ne Vermutung)
Code:
Star[1].PosX := 10;
Star[1].PosY := 10;