Hallo BrunoT!
Ich vermute, dass intern das Array wie ein dynamisches Array aufgebaut wird, aber eben vom Compiler mit den Vorgaben in der Typdefinition. Und dynamische Arrays beginnen immer mit Index Null. Hab ich aber noch nicht getestet. Ein mögliches Testprogramm wäre folgendes:
Delphi-Quellcode:
unit Test;
interface
type
TArray =
array[5..8]
of integer;
var
ZArray: TArray;
procedure Zuweisen(values:
array of integer);
implementation
procedure Zuweisen(values:
array of integer);
var i,j: integer;
begin
for i:=0
to 8
do begin ZArray[i] := values[j]; inc(j);
end;
end;
end.
program Zuw;
begin
Zuweisen([1,2,3,4,5,6,7,8]);
end.
Kann aber nicht gesund sein, wenn das noch funzt. Du solltest folgendes machen:
Delphi-Quellcode:
procedure Zuweisen(values: array of Integer;
va i,j: Integer;
begin
try
for i:=0 to 8 do begin ZArray[i] := values[j]; inc(j); end;
except
on ERangeError do ...
end;
end;
Gegebenenfalls solltest Du Bereichüberwachung einschalten oder im Programmtext dafür sorgen, dass die Arraygrenzen nicht überschritten werden können.
Viel Erfolg wünscht Dir
profmaster