Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Градиент   Найти похожие ветки 

 
vvvaaa   (2003-01-17 13:43) [0]

Мастера не подскажите ли как нарисовать допустим прямоугольник с градиентной заливкой.


 
Hooch ©   (2003-01-17 13:53) [1]

procedure GradientRect (FromRGB, ToRGB: TColor;Canvas:tcanvas);
var
RGBFrom : array[0..2] of Byte;
RGBDiff : array[0..2] of integer;
ColorBand : TRect;
I : Integer;
R : Byte;
G : Byte;
B : Byte;
begin
RGBFrom[0] := GetRValue (ColorToRGB (FromRGB));
RGBFrom[1] := GetGValue (ColorToRGB (FromRGB));
RGBFrom[2] := GetBValue (ColorToRGB (FromRGB));
RGBDiff[0] := GetRValue (ColorToRGB (ToRGB)) - RGBFrom[0];
RGBDiff[1] := GetGValue (ColorToRGB (ToRGB)) - RGBFrom[1];
RGBDiff[2] := GetBValue (ColorToRGB (ToRGB)) - RGBFrom[2];
Canvas.Pen.Style := psSolid;
Canvas.Pen.Mode := pmCopy;
ColorBand.Left := 0;
ColorBand.Right := canvas.ClipRect.Right-Canvas.ClipRect.Left;
for I := 0 to $ff do
begin
ColorBand.Top := MulDiv (I , canvas.ClipRect.Bottom-Canvas.ClipRect.Top, $100);
ColorBand.Bottom := MulDiv (I + 1,canvas.ClipRect.Bottom-Canvas.ClipRect.Top, $100);
R := RGBFrom[0] + MulDiv (I, RGBDiff[0], $ff);
G := RGBFrom[1] + MulDiv (I, RGBDiff[1], $ff);
B := RGBFrom[2] + MulDiv (I, RGBDiff[2], $ff);
Canvas.Brush.Color := RGB (R, G, B);
Canvas.FillRect (ColorBand);
end;
end;

Автор некто Михаил


 
vvvaaa   (2003-01-17 14:28) [2]

Hooch, огромное спасибо



Страницы: 1 вся ветка

Текущий архив: 2003.04.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
1-54702
sashak
2003-04-04 12:30
2003.04.17
Проблема с запуском DataBase DeskTop


14-54891
NightCold
2003-04-02 13:23
2003.04.17
Listbox & edit1


4-54959
AOTD
2003-02-15 20:04
2003.04.17
Как сунуть Resource в ГОТОВЫЙ EXE файл


14-54815
NetBreaker666
2003-03-30 19:48
2003.04.17
Кто больше всех задолбал в форуме ?


4-54946
Long
2003-02-17 18:15
2003.04.17
Как с помощью WinAPI создать окно с кнопкой