AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TColor zu RGBW Hex?

Ein Thema von Muellermilchtrinker · begonnen am 18. Apr 2011 · letzter Beitrag vom 2. Mai 2011
Antwort Antwort
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#1

TColor zu RGBW Hex?

  Alt 18. Apr 2011, 16:02
Delphi-Version: 2009
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
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: TColor zu RGBW Hex?

  Alt 18. Apr 2011, 16:12
Nimm die Funktion ColorToRGB(Color: TColor);
Andreas
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

AW: TColor zu RGBW Hex?

  Alt 18. Apr 2011, 16:53
Ich weiß zwar nicht, was W sein soll, aber ich würde es mal so probieren:
Delphi-Quellcode:
Format('%.2x%.2x%.2x%.2x',[
  Color and $ff,
  (Color shr 8) and $ff,
  (Color shr 16) and $ff,
  Color shr 24
]);
Gegebenenfalls vorher ColorToRGB aufrufen, wenn du auch Systemfarben als RGB haben möchtest.
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#4

AW: TColor zu 8 stelliger Hex?

  Alt 29. Apr 2011, 22:10
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.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

AW: TColor zu 8 stelliger Hex?

  Alt 29. Apr 2011, 22:13
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.
Und was gefällt dir an meinem Code nicht?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: TColor zu RGBW Hex?

  Alt 29. Apr 2011, 22:39
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.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: TColor zu RGBW Hex?

  Alt 29. Apr 2011, 23:42
besser und vollständiger kann man RGB(X) kaum beschreiben!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Cirec
Cirec

Registriert seit: 23. Sep 2010
Ort: Frankreich
7 Beiträge
 
Delphi 2009 Enterprise
 
#8

AW: TColor zu RGBW Hex?

  Alt 1. Mai 2011, 10:24
Hallo,

Hast du das jemals versucht?
Label1.Caption := HexDisplayPrefix + IntToHex(clRed, 8);
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#9

AW: TColor zu RGBW Hex?

  Alt 2. Mai 2011, 16:35
Hallo,

Hast du das jemals versucht?
Label1.Caption := HexDisplayPrefix + IntToHex(clRed, 8);
funktioniert! danke
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz