![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Хай всем. Помогите разобраться.
Пытаюсь воссоздать цветовые эффекты, которые описаны в статье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; И на строчке Код:
p[x].r:=random(256); Прошелся дебагером и определил что при x=0 и 1 все норм работает(как и должно быть, т.к. двумерный массив). Так вот вопрос, почему при x>1 возникает ошибка (хотя мне кажется что так и должно быть) и как мне сделать, чтобы код заработал. Заранее спасибо. p.s. среда delphi 2010 аналогичный код видел и на других форумах и он вроде как д.б. рабочим Последний раз редактировалось ildvild, 10.02.2013 в 20:12. |