Sicher? Eigentlich existiert PanelA[X,Y] da doch schon. Das wird doch in FormCreate erstellt.
Wenn Du Deinen Code aus #32 benutzt
Delphi-Quellcode:
procedure TForm1.CreatePanelMatrix(x1, y1: Integer);
var
x,y:integer;
begin
for x := 0 to 14 do
for y := 0 to 14 do
begin
Panel := TPanel.Create(Self);
Panel.Parent := Self;
Panel.Name := 'P_' + IntToStr(x) + '_' + IntToStr(y);
Panel.Width := 30;
Panel.Height := 30;
Panel.Caption := '';
Panel.Left := x1 + (x * 30);
Panel.Top := y1 + (y * 30);
Panel.OnMouseDown := PanelMatrixMouseDown;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var k,Ai,Bi: integer;
begin
randomize;
for k:=0 to 25 do
begin
A:=random(15);
B:=random(15);
IntA[A,B]:=9;
StringGrid1.Cells[A,B]:='X';
end;
for Ai:=0 to 14 do
begin
for Bi:=0 to 14 do
begin
if IntA[Ai,Bi]<>9 then
begin
m:=0;
if (Ai+1>=0) and (Ai+1<=14) and (Bi>=0) and (Bi<=14) then if IntA[Ai+1,Bi]=9 then m:=m+1;
if (Ai+1>=0) and (Ai+1<=14) and (Bi+1>=0) and (Bi+1<=14) then if IntA[Ai+1,Bi+1]=9 then m:=m+1;
if (Ai>=0) and (Ai<=14) and (Bi+1>=0) and (Bi+1<=14) then if IntA[Ai,Bi+1]=9 then m:=m+1;
if (Ai-1>=0) and (Ai-1<=14) and (Bi+1>=0) and (Bi+1<=14) then if IntA[Ai-1,Bi+1]=9 then m:=m+1;
if (Ai-1>=0) and (Ai-1<=14) and (Bi>=0) and (Bi<=14) then if IntA[Ai-1,Bi]=9 then m:=m+1;
if (Ai-1>=0) and (Ai-1<=14) and (Bi-1>=0) and (Bi-1<=14) then if IntA[Ai-1,Bi-1]=9 then m:=m+1;
if (Ai>=0) and (Ai<=14) and (Bi-1>=0) and (Bi-1<=14) then if IntA[Ai,Bi-1]=9 then m:=m+1;
if (Ai+1>=0) and (Ai+1<=14) and (Bi-1>=0) and (Bi-1<=14) then if IntA[Ai+1,Bi-1]=9 then m:=m+1;
IntA[Ai,Bi]:=m;
StringGrid1.Cells[Ai,Bi]:=IntToStr(m);
if m=0 then StringGrid1.Cells[Ai,Bi]:='_';
end;
end;
end;
CreatePanelMatrix(20,20);
end;
dann habe ich Dich bereits in #37 davon in Kenntnis gesetzt, dass die Panels dem Array gar nicht zugewiesen werden.
Wenn Du inzwischen etwas verändert hast, dann poste nochmals den entsprechenden Code.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.