Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Спектр цветов [D6]


Igor_Z ©   (2007-03-02 13:04:00) 

Уважаемые мастера.
Скажите, как OnPaint формы
получить спектр цветов, как в ColorDialog.
Заранее спасибо.


KADAN   (2007-03-02 14:23:00) [1]

procedure TForm1.FormPaint(Sender: TObject);
var i, j: integer;
   r, g, b: Byte;
   D: Real;

begin
 D := ClientWidth / 3;
 for i := 0 to ClientWidth - 1 do begin
   r := 0; g := 0; b := 0;
   if i <= D  then begin
     r := Min(255, Round(511 * (1 - i / D)));
     g := Min(255, Round(511 * (i / D)));
   end else
   if i <= 2 * D then begin
     g := Min(255, Round(511 * (1 - (i - D) / D)));
     b := Min(255, Round(511 * ((i - D) / D)));
   end else begin
     b := Min(255, Round(511 * (1 - (i - 2 * D) / D)));
     r := Min(255, Round(511 * ((i - 2 * D) / D)));
   end;
   for j := 0 to ClientHeight - 1 do begin
     Canvas.Pixels[i, j] := RGB(Round(r + (127 - r) * j / ClientHeight), Round(g + (127 - g) * j / ClientHeight), Round(b + (127 - b) * j / ClientHeight));
   end;
 end;
end;


SlymRO   (2007-03-02 13:24:00) [2]

for r:=0 to 255 do
for g:=0 to 255 do
for b:=0 to 255 do
 PutPixel:=rgb(r,g,b);

всего 2^24 вариантов


clickmaker   (2007-03-02 13:08:00) [3]

1) нарисовать картинку попиксельно/содрать скриншот, сохранить в bmp -> TBitmap
2) рисовать попиксельно в OnPaint
3) GradientFill()


Наверх

Титульная страница Поиск, карта сайта Написать письмо