Autor Beitrag
Basti
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 345

Windows Vista
D2005 Pers, D7 Pers
BeitragVerfasst: Do 16.12.04 17:33 
Hallo Leute,
ich habe gerade in ziemlich unangenehmes Problem mit der Farbgestaltung in Delphi.
Ich möchte den Hexadezimalwert einer Farbe bestimmen (aber als String) und dazu verwende ich erst Canvas.Pixels[x,y]
und danach wandle ich diesen Wert mit ColorToString um.
Normalerweise würde ja jetzt der Hexadezimalwert als String drinne stehen, aber leider nicht
bei den Farben, die Delphi mit Namen ausstattet und da ich mit dem String weritere Rechnungen durchführe,
kommt dann ein Fehler, wenn ColorToString 'clWhite' oder so was ausspuckt.
Manchmal gibt es ja so konstanten, die irgendwas einschalten - kann man mit
irgendeinem Parameter diese Namensverwendung ausschalten?
Danke für eure Hilfe! :)

_________________
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Do 16.12.04 17:40 
Hallo Basti,

wenn ich mich recht erinnere, dann ist der Hex-Wert einer Farbe auch nur die Hexadezimale Darstellung des RGB-Werts. Die einzelne Werte bekommst du mit GetRValue, GetGValue und GetBValue.
Die drei Farbwerte kannst du dann mit IntToHex umwandeln und du hast das, was du möchtest.

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Do 16.12.04 17:45 
Es geht auch einfacher, indem Du anstelle von ColorToString, IntToHex direkt auf die Farbvariable anwendest, denn die ist auch nichts weiter als ein Integer. Gegebenfalls musst die noch typecasten, gehen sollte es auf jeden Fall.

Gruß
raziel

_________________
JSXGraph
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Do 16.12.04 18:27 
raziel hat folgendes geschrieben:
Es geht auch einfacher, indem Du anstelle von ColorToString, IntToHex direkt auf die Farbvariable anwendest, denn die ist auch nichts weiter als ein Integer. [..]
Stimmt auch wieder. Jetzt musst du halt selber entscheiden, ob du den (Delphi-)Zahlenwert der Farbe oder den RGB-Wert als Hex haben möchtest.

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.