Hallo! Dynamische Arrays beginnen beim Index 0, deshalb ist nach Durchlauf deiner Schleife das erste Element nicht initialisiert. Wenn du nur das komplette Array durchlaufen willst reicht auch
Delphi-Quellcode:
for i := Low(a) to High(a) do begin
for j := Low(a[i]) to High(a[i]) do begin
a[i,j] := IntToStr(i) + '_' + IntToStr(j);
end;
end;
Davon abgesehen kann ich deinen Fehler nicht reproduzieren, dieser Code funktioniert:
Delphi-Quellcode:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
a: array of array of String;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
b: array of array of String;
i,j: Integer;
begin
SetLength(b, Length(a), Length(a));
for i := Low(b) to High(b) do begin
for j := Low(b[i]) to High(b[i]) do begin
b[i,j] := a[i,j];
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i,j: Integer;
begin
SetLength(a, 7, 7);
for i := Low(a) to High(a) do begin
for j := Low(a[i]) to High(a[i]) do begin
a[i,j] := IntToStr(i) + '_' + IntToStr(j);
end;
end;
end;
In welcher Code-Zeile tritt der Fehler denn auf?
Dani H.
At Least I Can Say I Tried