Хай всем. Помогите разобраться.
Пытаюсь воссоздать цветовые эффекты, которые описаны в статье
http://www.delphimaster.ru/articles/grad/index.html
сам код
Код:
procedure TForm1.FormPaint(sender:TObject);
type TRGB=record
b,g,r:byte;
end;
ARGB=array [0..1] of TRGB;
PARGB=^ARGB;
var
b:TBitMap;
p:PARGB;
x,y:integer;
begin
b:=TBitMap.Create;
b.pixelformat:=pf24bit;
b.width:=Clientwidth;
b.height:=Clientheight;
for y:=0 to b.height-1 do
begin
p:=b.scanline[y];
for x:=0 to b.width-1 do
begin
p[x].r:=random(256);
p[x].g:=random(256);
p[x].b:=random(256);
end;
end;
canvas.draw(0,0,b);
b.free;
end;
И на строчке
возникает ошибка
Range check error.
Прошелся дебагером и определил что при x=0 и 1 все норм работает(как и должно быть, т.к. двумерный массив).
Так вот вопрос, почему при x>1 возникает ошибка (хотя мне кажется что так и должно быть) и как мне сделать, чтобы код заработал.
Заранее спасибо.
p.s. среда delphi 2010
аналогичный код видел и на других форумах и он вроде как д.б. рабочим