Frage zu TColor
-
Hallo.
Ich setzte mit Hilfe einer ComboBox(Transparenz) meinen Alpha Wert:
Color = (Color & ~0xFF000000) | (abs(((float)(10 - Transparenz->ItemIndex)) / 10 * 0xFF) << 24);
Später möchte ich durch Auswahl, den Transparantwert für die ComboBox auslesen können.
Wie bekomme ich aus dem Color Wert welcher Transparenz ist, wieder den Index bzw den Wert der Transparenz?
Ich möchte dann den vom Farbwert in der Transparenz ComboBoxs später den Alpha Wert(ItemIndex) dargestellt bekommen.Man müsste ja die Formel nur umstellen *hust hust*

Da gibts doch bestimmt ne Lösung die ich auch hinbekomme, oder?
-
-
kehr doch deine berechnung einfach um...
typedef unsigned char u_char; u_char Red = (u_char) Color; u_char Green = (u_char) (Color >> 8); u_char Blue = (u_char) (Color >> 16); u_char Alpha = (u_char) (Color >> 24); int Index = 10 - ((int) ((Alpha / 255.0) * 10.0));p.s. keine gewähr
-
Ich habs bereits so gelöst
// Gibt den ItemIndex für meine Transparenz ComboBox wieder int __fastcall TForm1::GetAlpha(TColor color) { return 10 - (((100 * ((color & 0xFF000000) >> 24) / 256) + 1) / 10); }