Nehmen wir mal als Vorlage eine alte FormGradient Funktion und ändern sie leicht ab, bekommen wir eine Funktion mit dem wir ein Mischungsverhältnis zweier Farben berechnen können:
Delphi-Quellcode:
function ColorMix(Color1, Color2: TColor;
Index, Count: Word): TColor;
var
R, G, B: Integer;
begin
if Index > Count
then
Index := Count;
R := Round(GetRValue(Color1) + ((GetRValue(Color2) - GetRValue(Color1)) *
Index / Count));
G := Round(GetGValue(Color1) + ((GetGValue(Color2) - GetGValue(Color1)) *
Index / Count));
B := Round(GetBValue(Color1) + ((GetBValue(Color2) - GetBValue(Color1)) *
Index / Count));
Result :=
RGB(R, G, B);
end;
procedure TForm1.Button1Click(Sender: TObject);
const
Count = 100;
var
Index: Integer;
begin
with Canvas
do
begin
Pen.Width := 5;
for Index := 0
to Count
do
begin
Pen.Color := ColorMix(clGreen, clRed,
Index, Count);
Rectangle(100, 100, 500, 400);
Sleep(20);
end;
end;
end;