Moin,
[…]Wenn man High benutzt, muss man noch eins dazu addieren, da High den Index des letzten Elementes zurück. Bei einer Array Länge von vier und wenn das Array null basierend ist, wie bei dynamischen Arrays, dann liefert High drei. Das Array hat aber vier Elemente von null bis drei.
Anders ausgedrückt: Wenn du die Länge eines Arrays auf die Länge eines anderen setzen willst, dann machst du ja nicht:
Code:
Setze die Länge von Array A auf den letzten Index von Array B
Sondern:
Code:
Setze die Länge von Array A auf die Länge von Array B
Weil High()+1 muss nicht immer stimmen (ungetestet, kann sein dass ich falsch liege):
Delphi-Quellcode:
var
x : array [10..15] of Int64;
a : array of Int64;
begin
SetLength(a, High(x)); // High(x) = 15
ShowMessage('Das temporäre Array a hat die Länge von: ' + IntToStr(Length(a)) + #13#10 + 'Das Array x hat die Länge von: ' + IntToStr(Length(x)));
MfG
Fabian