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