Etwas optimaler könnte der Code schon sein
Delphi-Quellcode:
Var Color: TColor;
R, G, B: Byte;
{um sicher zu gehn, das auch wirklich ein RGB-Farbwert drin ist}
Color := ColorToRGB(Color);
{TColor aufteilen} {oder so}
R := GetRValue(Color); R := Color
and $FF;
G := GetGValue(Color); G := (Color
shr 8)
and $FF;
B := GetBValue(Color); B := (Color
shr 16)
and $FF;
{und zurück} {oder so}
Color :=
RGB(R, G, B); Color := R
or (G
shl 8)
or (B
shl 16);
Int64 auf 'nem 32-Bit-System
Und dann noch solch langsame Funktionen/Befehle ("trunc", "sqr" und "/")
ach ja ... siehe Code-Lib
RGB -> TColor -> RGB