![]() |
Hex to TColor
Wie kann man einen HTML Farbwert (6 stellige Hex Zahl) in einen TColor Wert umwandeln?
|
StringToColor('$FF0000');
Wobei die ersten 2 Stellen Blau, die zweiten Grün und die dritten Rot angeben. |
Zitat:
|
Ich werde meine Lösung von D3K mal in die FAQ Sektion schreiben. Ist gegen 16:15 verfügbar :wink:
![]() |
Moin Tpercon,
ich kann's jetzt nicht ausprobieren, aber Du kannst es mal so versuchen:
Code:
Das Problem ist ja, dass die HTML Farbwerte in der Reihenfolge RRGGBB angegeben werden, und bei TColor BBGGRR. Es müssen also zwei Bytes vertauscht werden.
function RGBStrToColor(const p_sRGB : string) : TColor;
begin Result := 0; Result := StrToInt('$'+copy(p_sRGB,1,2)) or (StrToInt('$'+copy(p_sRGB,3,2)) shl 8) or (StrToInt('$'+copy(p_sRGB,5,2)) shl 16); end; function RGBToColor(const p_iRGB : integer) : TColor; begin Result := 0; Result := ((p_iRGB and $FF0000) shr 16) or (p_iRGB and $FF00) or ((p_iRGB and $FF) shl 16); end; |
Zitat:
|
Zitat:
|
Das ist mir schon klar. Aber ich habe Daniel B's Posting so verstanden, dass er meinen Text, der sich auf die Farbreihenfolge für die Übergabe an StringToColor bezieht, verbessern wollte, wobei seine Aussage dann falsch ist.
|
Zitat:
|
Hab die Version von sakura und Christian genommen. Funktioniert perfekt.
Danke und Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz