Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#5

Re: ColorToString nicht für Systemfarben???

  Alt 30. Mai 2008, 23:29
1. Die Farbkonstanten welche Farben aus einem Farbschema wiederspiegeln (clBtnFace, etc), können als Konstante nicht mit richtigen Farbwerten definiert werden, da sie auf dem Zielsystem von Windows festgelegt werden, da der Nutzer die Farbschemas frei definieren kann. Somit sind es nur Platzhalter, welcher als Kennzeichnung das 31. Bit gesetzt hat. Dadurch sind diese Konstanten nach einem Typecast auf Integer immer negativ. Die VCL wandelt diese Konstanten u.a. in der Funktion ColorToRGB() um und fragt dann für die jeweilige Konstante Windows nach dem Farbwert.
2. Der Nutzer kann in Windows die einzelnen Farbkonstanten frei festlegen und somit kann der Nutzer auch z.B. rot für den Menühintergrund, einen Button und auch für den Fensterrand definieren. Somit ist es im Endeffekt einfach nur ein RGB Wert, der dahinter liegt. Und von diesem kann man nun nicht mehr eindeutig auf eine solche Farbkonstanten zurückkommen, da es eine 1:n Beziehung ist.
Auch wenn du einen RGB Wert hast, ist die Frage, ob er jemals eine Konstante war oder direkt so genutzt wurde und nicht über eine Konstante ermittelt wurde.
  Mit Zitat antworten Zitat