Huhu.
Ich habe mal wieder eine Knacknuss, bei der ich nicht weiterkomme.
Wenn ich mir Screen.HintFont.Color, dann hat das einen negativen Wert bei mir unter Windows XP (Delphi 7): -16777193 = $FFFFFFFFFF000017
Soweit so gut.
Doch, wenn ich nun die Komplimentärfarbe davon errechnen möchte, dann ergibt folgendes Konstrukt:
Canvas.Font.Color := Screen.HintFont.Color xor $FFFFFF;
-24 = $FFFFFFFFFFFFFFE8
Dadurch, weil der Wert Negativ ist, erhelte ich letztenendes wieder fast die gleiche Farbe wie der Originalwert.
Gibt es einen Weg (den ich nicht gefunden habe, ohne etliche if/case - Prüfungen), diesen Windowsfarbwert in einen Delphifarbwert umzurechnen?
Eigentlich müsste ich ja nur vom Original oder vom Ergebnis $FFFFFFFFFF000000 subtrahieren, damit es stimmt, oder gibt es wirklich eine Funktion, die bei Delphi 7 schon nutzbar ist?
Viele Grüße
~Mathias