Der Index 4 muß knallen, da es ja nur 4 Items gibt, also der Größte die 3 ist, wenn man bei 0 anfängt zu zählen.
In aktuellen Delphis sind nun standardmäßig die Überlauf- und Bereichsprüfung aktiviert, für neu erstellte Projekte (leider auch die dämlichen DebugDCUs),
womit dort ein anderer Fehler zu sehen ist, bezüglich der 4:
Zitat:
Im Projekt Project27.exe ist eine
Exception der Klasse
ERangeError mit der Meldung
'Fehler bei Bereichsprüfung' aufgetreten.
PS:
Delphi-Quellcode:
procedure TForm25.FormCreate(Sender: TObject);
var
a: array of string;
begin
a := ['string0', 'string1', 'string2', 'string3'];
SetLength(a, 2);
SetLength(a, 4);
ShowMessage(a[3]); // High(a) = 3
end;