Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Color des Hint's?

  Alt 3. Dez 2004, 14:26
Moin!

Zitat von jim_raynor:
Mmh. clInfoBk ist eine Konstante und gibt nicht die richtige Farbe wieder sondern nur einen Wert, damit Windows weiß, dass es die Systemfarbe nutzen soll. Genauso verhält es sich mit clBtnFace und den anderen Systemfarben. Wenn du also IntToHex(ColorToRGB(clInfoBk),6) benutzt bekommst du auf jedem System den gleichen Wert, auch wenn sich die Farbe ändert. Um den eigentlichen Farbwert zu bekommen gibt es sicherlich ne API Funktion die ich jetzt nicht kenne. Aber du kannst ja im Eigenschaftsdialog der Anzeige schauen (bei Darstellung glaube).
Wenn du sowas hier schon behauptest und schreibst, dann probiere es bitte auch aus.

Die clXXX Konstanten sind negative Indexe (bzw. oberstes Bit ist zur Kennzeichnung gesetzt) die Borlands Konstanten kennzeichnen und um daraus eine Farbe mit RGB Werten zu bekommen, kann man die ColorToRGB() Funktion nutzen. Diese sorgt dafür, dass wenn es eine solcher Konstante ist, ein RGB Wert zurück kommt. Ansonsten werden die schon übergebenen RGB Werte wieder zurück gegeben.

Delphi-Quellcode:
function ColorToRGB(Color: TColor): Longint;
begin
  if Color < 0 then
    Result := GetSysColor(Color and $000000FF) else
    Result := Color;
end;
In so fern ist deine Aussage von oben falsch, denn man bekommt immer die RGB Werte, da die von dir vermutete Funktion schon aufgerufen wird. Wenn du aber IntToHex(clInfoBK), 8) machst, dann bekommst du im untersten Byte ein Index für die Systemfarbe und das oberste Bit (MSB) ist gesetzt.

MfG
Muetze1
  Mit Zitat antworten Zitat