![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Градиент [D6, D7, Win95/98, WinXP]
tormoz © (2004-09-26 20:43:00)Здравствуйте. Подскажите как сделать градиентную раскраску панели (TPanel).
tormoz (2004-09-26 20:55:00) [1]Спасибо большое!!!
wnew (2004-09-26 20:50:00) [2]tormoz (26.09.04 20:43)
procedure TDatenEin.FormCanvasFill(Sender: TObject);
const
StartColor: array[0..2] of Byte = (100,100,180);
EndColor: array[0..2] of Byte = (40,225,245);
var DeltaRect: Integer;
FillBereich: TRect;
Delta: Word;
i: Integer;
ActuelColor: array[0..2] of Byte;
begin
ActuelColor[0] := 100;
ActuelColor[1] := 100;
ActuelColor[2] := 180;
Delta := 50;
DeltaRect := Round((BoundsRect.Bottom - BoundsRect.Top) / Delta);
FillBereich.Top := ClientRect.Top;
FillBereich.Left := ClientRect.Left;
FillBereich.Right := ClientRect.Right;
FillBereich.Bottom := ClientRect.Bottom;
for i := 0 to Delta do
begin
Canvas.Brush.Color := RGB(ActuelColor[0],ActuelColor[1],ActuelColor[2]);
Canvas.FillRect(FillBereich);
FillBereich.Top := FillBereich.Top + DeltaRect;
if FillBereich.Top >= FillBereich.Bottom then Exit;
ActuelColor[0] := ActuelColor[0]+Round((EndColor[0]-StartColor[0])/Delta);
ActuelColor[1] := ActuelColor[1]+Round((EndColor[1]-StartColor[1])/Delta);
ActuelColor[2] := ActuelColor[2]+Round((EndColor[2]-StartColor[2])/Delta);
end;
end;