Thema: Delphi Acess Violation

Einzelnen Beitrag anzeigen

Morphy

Registriert seit: 25. Mär 2010
3 Beiträge
 
#5

Re: Acess Violation

  Alt 25. Mär 2010, 20:23
ok, ich hab das gemacht und jetzt hab ich die stelle gefunden wo der (ziemlich irrationale) fehler zu liegen scheint:

Delphi-Quellcode:
  
type TLabelfeld = array[0..13,0..23] of TImage;
  //TVorschaufeld = array[0..3,0..3] of TImage;


var
  Form1: TForm1;
  Labelfeld: TLabelfeld;
  //vorschau1,vorschau2,vorschau3,vorschau4 : TVorschaufeld;
  go: boolean;


implementation

{$R *.dfm}
{$R res.res}

procedure TForm1.FeldBauen;
var i,j:byte;
k,l:integer;
begin
 for i:=1 to 10 do begin
  for j:=1 to 20 do begin
   labelfeld[i,j]:=TImage.Create(GroupBox3);
   labelfeld[i,j].Parent:=GroupBox3;
   labelfeld[i,j].left:=i*15+3;
   labelfeld[i,j].top:=j*15+7;
   labelfeld[i,j].width:=14;
   labelfeld[i,j].height:=14;
  end;
 end;
 LastTetrisfeld:=TTetrisfeld.create;
 Tetrisfeld:=TTetrisfeld.create;
 stein:=Tetrisfeld.SteinRandomcreate;
 tetrisfeld.pause:=true;
 k:=1;
 l:=1;
 for k:=1 to 10 do begin
  for l:=1 to 20 do begin
   labelfeld[k,l].Picture.Bitmap.LoadFromResourceName(HInstance, 'bg');
  end;
 end;
end;
ich hab jetzt die variablen überwacht und habe rausbekommen, dass k und l beim start der schleifen den wert 10 und 20 bekommen, und dann anfangen runterzuzählen, bei k=20 und l=19 bricht er dann mit der fehlermeldung

'access violation at 0x00405b35: write of adress 0x00030cf4'

ab. verstehe nicht warum er plötzlich rutnerzählt o.O

k:=1 und l:=1 scheint der compiler nicht zu beachten, ich kann dort aufjedenfall keinen breakpoint setzen, das wird so komisch grün dann die zeile...

naja, diese stelle vom code hat übrigens immer funktioniert, hab da nix geändert und jetzt kommt plötzlich der fehler da...

kann mir noch wer helfen?

DANKE schonmal im Vorraus...

edit: nein, hab alles selbst geschrieben und benutze delphi 7
  Mit Zitat antworten Zitat