Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [Fehler]: Inkompatible Typen: 'String' und 'dynamic Arra

  Alt 17. Nov 2007, 21:54
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
  Mit Zitat antworten Zitat