Hallo,
ich setze in einem Grid ein paar Farben (Brush.Color).
Damit der Text lesbar ist, will ich den
Text in der komplementäre Farbe schreiben.
unter
http://dotnetpulse.blogspot.com/2007...ite-color.html
habe ich das hier gefunden.
public static Color CalculateOppositeColor(Color clr)
{
return Color.FromArgb(255 - clr.R, 255 - clr.G, 255 - clr.B);
}
In Delphi umgesetzt:
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 GetOppositeColor(theColor: TColor): TColor;
var
R, G, B: Byte;
begin
TColor2RGB(theColor, R, G, B);
R:= 255-R;
G:= 255-G;
B:= 255-B;
Result:= RGB2TColor(R,G,B);
end;
{ TResourcePlanClass_Int__ProjectViewEx.GetOppositeColor }
Bei gelbem Hintergrund (clYellow) gibt das jetzt weiss.
Das ist aber nicht dass, was ich erwartet hatte.
Wo steckt der Fehler ?
Danke
Heiko