Invalid pointer operation В ДЕЛФИ
Я пишу редактор карт для одной из своих игр и при выходе из
редактора появлялась ошибка. Оказалась ошибка в модуле, где я загружал картинки
в редактор.
Вот код на который стоило обратить внимание:
SetLength(Graph.Perehod,form1.ScrollBar3.Max+1,8+1,3);
Нумерация идет с нуля (тоесть последняя цифра динамического
массива определеяет нулевой, первый и второй елементы)
for i:=0 to
form1.ScrollBar3.Max do
for j:=1 to 8 do
for k:=1 to 3 do
begin
Graph.Perehod[i,j,k]:=Tbitmap.Create;
Graph.Perehod[i,j,k].TransparentColor:=clblack;
Graph.Perehod[i,j,k].Transparent:=true;
Graph.Perehod[i,j,k].LoadFromFile(path+'\img\perehod\'+inttostr(i)+'p'+inttostr(j)+'p'+inttostr(k)+'.bmp');
end;
A я
пытался что-то в третий записать и ошибки не было. Но при выходе из программы
появлялась ошибка
Invalid pointer operation
РЕШЕНИЕ ПРОБЛЕМЫ
Нужно либо
звеличить раз мер мас сива:
SetLength(Graph.Perehod,form1.ScrollBar3.Max+1,8+1,3);
Либо уменшить цифру
в заполнении массива
for i:=0 to
form1.ScrollBar3.Max do
for j:=1 to 8 do
for k:=1 to 2 do
begin
Graph.Perehod[i,j,k]:=Tbitmap.Create;
Graph.Perehod[i,j,k].TransparentColor:=clblack;
Graph.Perehod[i,j,k].Transparent:=true;
Graph.Perehod[i,j,k].LoadFromFile(path+'\img\perehod\'+inttostr(i)+'p'+inttostr(j)+'p'+inttostr(k)+'.bmp');
end;
|