einfach glück das es klappt bei der ID. Der Fehler liegt beim Index
Delphi-Quellcode:
H := High(Nachteil)+1
SetLength(Nachteil,H);
Nachteil[H].ID := 1;
Wenn dein Array bei 0 losgeht greifst du auf den index außerhalb des bereichs zu weil wenn angenommen die aktuelle länge von "Nachteil" 5 ist so ist H = 4 + 1 = 5
Somit ist die neue Länge ist somit weiterhin 5
Dann versuchst du haber auf Nachteil[5] zuzugreifen was schiefgeht weil der höchste Index 4 ist...
mal lieber folgendes
Delphi-Quellcode:
setlength(Nachteil, length(Nachteil) + 1);
Nachteil[Hight(Nachteil)].ID := 1;
...