Einzelnen Beitrag anzeigen

Lombok

Registriert seit: 7. Mär 2013
12 Beiträge
 
#1

Dynamisches Array.

  Alt 7. Mär 2013, 09:30
Delphi-Version: 5
Guten Morgen,
Ich habe ein kleines Problem mit einem Dynamischen Array.
Ich habe eine Prozedur welche Werte Prüfen soll und diese dann in das "fehlerbehaftete" Array reinschreiben soll das ganze ist 2 Dimensional
damit ich einem Wert mehrere Werte zuordnen kann.Jetzt bekomme ich aber nachdem b=5 wurde folgende Fehlermeldung:

"Im Projekt.exe ist eine Exception der Klasse EAccessViolation aufgetreten:"Zugriffsverletzung bei Adresse 00401C2D in Modul 'Projekt.exe'.Schreiben von Adresse 00000001."

Habe mit dem Debugger die Länge des Array Schritt für Schritt nachgeprüft es wir genau immer um 1 verlängert und dann erst der Wert hineingeschrieben.

Code:
var
KandidatenListen   : array of array of Byte;
.

procedure Tform1.KandidatenListe();
var
x,y,a,b,za :integer;                            
begin                              
   a := 0;
     for x:= 1 to 9 do begin
      for y:= 1 to 9 do begin
        if (Sudoku[x,y]=0) then begin
          b:=0;
          a := a+1;
          b := 1;
            for za:=1 to 9 do begin
             zahl := za;              
              If (Einheit_Pruefen(x,y)) and (Wagerecht_Pruefen(x)) and (Senkrecht_Pruefen(y)) then begin
              SetLength(KandidatenListen,(a));
              SetLength(KandidatenListen[(a-1)],b);
              KandidatenListen[(a-1),b]:= za;                  //Hier wirft es mich mit der Fehlermeldung raus.Wenn B=5 ist.
              Korx[a]:= x;
              Kory[a]:= y;
              Memo1.Lines.Add('['+(IntToStr(a-1))+','+IntToStr(b)+']'+'='+IntToStr(KandidatenListen[(a-1),b]));
              b:= b+1;
              end;
            end;
        end;
      end;                      
    end;
end;

Geändert von Lombok ( 7. Mär 2013 um 10:12 Uhr)
  Mit Zitat antworten Zitat