![]() |
Delphi-Version: 2009
TColor zu RGBW Hex?
Hallo DP,
ich verwende einen TColorDialog um eine Farbe fest zu legen. Mit ColorToString bekomme ich meine Farbe im Format: $AABBCCDD jedoch bekomme ich auch clRed. Kann ich Delphi irgendwie beibringen mir immer den Hexwert als RGBW zu geben? RGBW ist dabei wichtig |
AW: TColor zu RGBW Hex?
Nimm die Funktion
Delphi-Quellcode:
ColorToRGB(Color: TColor);
|
AW: TColor zu RGBW Hex?
Ich weiß zwar nicht, was W sein soll, aber ich würde es mal so probieren:
Delphi-Quellcode:
Gegebenenfalls vorher ColorToRGB aufrufen, wenn du auch Systemfarben als RGB haben möchtest.
Format('%.2x%.2x%.2x%.2x',[
Color and $ff, (Color shr 8) and $ff, (Color shr 16) and $ff, Color shr 24 ]); |
AW: TColor zu 8 stelliger Hex?
Ok, ich bin davon ausgegangen, dass bei der 8 stelligen Hex die amdere 2 Stellen für die Helligkeit stehen, aber ich kann mich auch täuschen.
Also was ich möchte ist folgendes: clRed, etc zu einer 8 stelligen Hex kopieren. ColortoRGB funktioniert nicht, da ich dort nur 6 Stellen bekomme. |
AW: TColor zu 8 stelliger Hex?
Zitat:
|
AW: TColor zu RGBW Hex?
Eine Farbe mit 24-Bit Auflösung lässt sich mit 3 Bytes darstellen.
Jeweils Rot, Grün und Blau haben dabei einen Wertebereich von 0..255, das entspricht einem Byte. 3 Byte lassen sich mit 6 Hexziffern kodieren. Häufig geht man aber auf 4 Bytes, wobei das höchstwertige Byte immer gleich 0 ist oder als Alphakanal für Transparenz dient. Innerhalb von Windows kann dieses 4 Byte auch eine Sonderbedeutung haben indem es auf eine Palettenfarbe hinweist. Würde man im 4. Byte die Helligkeit kodieren (was nach deiner Vorstellung dem RGBW entspricht) wäre das eine redundanten Darstellung, da die Helligkeit ja schon über den gewichteten Durchschnitt von Rot-, Grün- und Blauanteil bestimmt ist. In der Code-Library gibt es eine Funktion, die aus einer RGB - Farbe die Helligkeit errechnet. |
AW: TColor zu RGBW Hex?
:thumb: besser und vollständiger kann man RGB(X) kaum beschreiben!
|
AW: TColor zu RGBW Hex?
Hallo,
Hast du das jemals versucht? Label1.Caption := HexDisplayPrefix + IntToHex(clRed, 8); |
AW: TColor zu RGBW Hex?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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