Попробуй так
| Код | procedure FillGradient(ACanvas: TCanvas; ARect: TRect; Color1, Color2, Color3: TColor); var i: integer; r, g, b: Byte; LineWidth, LineHeight: integer; begin ACanvas.Pen.Color := Color3; ACanvas.Rectangle(ARect); LineWidth := pred(ARect.Right - ARect.Left); LineHeight := pred(ARect.Bottom - ARect.Top); for i := 1 to pred(LineHeight) do begin r := GetRValue(Color1); g := GetGValue(Color1); b := GetBValue(Color1); r := r + (((GetRValue(Color2) - r) * i) div LineHeight); g := g + (((GetGValue(Color2) - g) * i) div LineHeight); b := b + (((GetBValue(Color2) - b) * i) div LineHeight); ACanvas.Brush.Style := bsSolid; ACanvas.Brush.Color := RGB(r, g, b); ACanvas.FillRect(Rect(1, ARect.Top + i, LineWidth, ARect.Top + i + 1)); end; end;
|
|