Delphi-Quellcode:
var
c: integer = 1;
// gibt die Größe des Arrays an
procedure SetN(ABez:
string; AMul: integer);
// Hiermit kann man eine neue Einheit hinzufügen
begin
SetLength(n, c + 2);
// Zuerst den Array vergrößeren (das ganz oben genannte Problem könnte auch hierher kommen, weil ich die Länge auf c+2 setze, bei c+1 oder gar c gibts aber Access violation)
n[c].Bez := ABez;
// einfach die Bezeichnung setzen
n[c].Mul := AMul;
// und hier den entsprechenden Faktor (Erklärung oben beim record)
Inc(c);
//
A: Man kann die Länge auch aus dem Array auslesen, denn das zählt nicht umsonst selber mit.
B: Dynamische Arrays beginnen bei 0 und nicht 1.
Da muß es ja knallen.
PS: Debuggen hilft Wunder, man muß es nur nutzen.
Und dazu noch in den Projektoptionen die Bereichsprüfung aktivieren, vorallem wenn man des Debuggens nicht mächtig ist.