procedure TForm1.FormCreate(Sender: TObject);
begin
DibujarDegradado(TImage1.Canvas, TImage1.ClientRect, clYellow, clRed);
end;
procedure TForm1.DibujarDegradado(ACanvas: TCanvas; ARect: TRect; Color1, Color2: TColor);
var
i, R1, G1, B1, R2, G2, B2: Integer;
R, G, B: Integer;
LineRect: TRect;
begin
R1 := GetRValue(ColorToRGB(Color1));
G1 := GetGValue(ColorToRGB(Color1));
B1 := GetBValue(ColorToRGB(Color1));
R2 := GetRValue(ColorToRGB(Color2));
G2 := GetGValue(ColorToRGB(Color2));
B2 := GetBValue(ColorToRGB(Color2));
for i := 0 to ARect.Bottom - ARect.Top do
begin
R := R1 + MulDiv(R2 - R1, i, ARect.Bottom - ARect.Top);
G := G1 + MulDiv(G2 - G1, i, ARect.Bottom - ARect.Top);
B := B1 + MulDiv(B2 - B1, i, ARect.Bottom - ARect.Top);
ACanvas.Brush.Color := RGB(R, G, B);
LineRect := Rect(ARect.Left, ARect.Top + i, ARect.Right, ARect.Top + i + 1);
ACanvas.FillRect(LineRect);
end;
end;