function MixColors(F1, F2: TColor; Z, N: Single): TColor;
var r, g, b, r1, g1, b1, r2, g2, b2: byte;
h: double;
begin
h := Z + N;
F1 := ColorToRGB(F1);
F2 := ColorToRGB(F2);
r1 := GetRValue(F1);
g1 := GetGValue(F1);
b1 := GetBValue(F1);
r2 := GetRValue(F2);
g2 := GetGValue(F2);
b2 := GetBValue(F2);
r := round((r1 * Z + r2 * N) / h);
g := round((g1 * Z + g2 * N) / h);
b := round((b1 * Z + b2 * N) / h);
Result := RGB(r, g, b);
end;
// Rot und Blau werden im Verhältnis 4 zu 3 gemischt
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.color := clred;
Panel2.color := clblue;
Panel3.color := MixColors(Panel1.color, Panel2.color, 4.0, 3.0);
end;