ja, mit etwas überlegen bin ich letztendlich auf folgendes Code gekommen (Die beiden ersten kommen aus der Codelib):
Delphi-Quellcode:
function RGB2TColor(
const R, G, B: Byte): Integer;
begin
// convert hexa-decimal values to RGB
Result := R + G
shl 8 + B
shl 16;
end;
procedure TColor2RGB(
const Color: TColor;
var R, G, B: Byte);
begin
// convert hexa-decimal values to RGB
R := Color
and $FF;
G := (Color
shr 8)
and $FF;
B := (Color
shr 16)
and $FF;
end;
function FadeColor(Cl, BGCl: TColor; Fade: Byte):TColor;
var CR, CG, CB, HR, HG, HB: Byte;
begin
TColor2RGB(CL,CR,CG,CB);
TColor2RGB(BGCl,HR,HG,HB);
CR:=(CR*Fade+HR*(256-Fade))
div 256;
CG:=(CG*Fade+HG*(256-Fade))
div 256;
CB:=(CB*Fade+HB*(256-Fade))
div 256;
Result:=RGB2TColor(CR,CG,CB);
end;
ich weiss nicht ob er funktioniert, da er für meine Anwendung offensichtlich
deutlich zu langsam ist und es nur flackert, ohne das man was erkennen kann.
ich werde heute abend nochmal genau testen...