have you SetLength-ed bmpArray[k].pcolor?
for k:=low(bmpArray) to high(bmpArray) do begin SetLength(bmpArray[k].pcolor,4); for j:=low(bmpArray[k].pcolor) to high(bmpArray[k].pcolor) do SetLength(bmpArray[k].pcolor[j],5); end;