Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Color zu Hex (https://www.delphipraxis.net/91662-color-zu-hex.html)

lhmultimedia 8. Mai 2007 12:27


Color zu Hex
 
Hallo.
Ich wollte mal fragen wie ich aus einer Color-Variable (z.b. clWhite) einen Wert als HEX-Farbe (z.b. #ffffff, also wie im HTML Body Bgcolor-Tag) erhalten kann.
Freu mich schon mal im voraus auf Antworten.
LHMultimedia :mrgreen: :mrgreen: :mrgreen: :mrgreen: :coder:

Klaus01 8. Mai 2007 12:36

Re: Color zu Hex
 
Mit IntToHex(clWhite,6) bekommst Du den RGB hexWert der Farbe.
Welcher aber nicht der Farbpallette von HTML netspricht.

Grüße
Klaus

SirThornberry 8. Mai 2007 12:38

Re: Color zu Hex
 
warum entspricht der nicht der Farbpalette von HTML? inzwischen verarbeiten browser eigentlich alle Farbwerte. Bei clWhite solltest du zuvor jedoch ColorToRGB aufrufen

himitsu 8. Mai 2007 12:42

Re: Color zu Hex
 
TColor ist "nur" ein Integer, welcher in den unteren 3 Bytes die Farbinformationen enthält ... siehe Delphi-Referenz durchsuchenTColor

Demnach brauchst du deises z.B. nur mit IntToHex umzuwandeln.

Allerdings ist die Farbreinfolge (RGB) in Delphi andersrum, als in "HTML".

Also mußt du noch die Bytes tauschen.

$00RRGGBB <> $00BBGGRR

[add]
aha, doch shcon antworten.

Für clWhite ist ColorToRGB nicht notwendig, da dieses die Farbwerte schon enthält, allerdings für die Konstanden der Systemfarben (z.B. clBtnFace) wäre es notwendig (na ja .. schaden kann ColorToRGB aber och nicht).

lhmultimedia 8. Mai 2007 16:46

Re: Color zu Hex
 
Danke für die schnellen Antoworten!
LHMultimedia!

dominikkv 8. Mai 2007 17:23

Re: Color zu Hex
 
bei DelphiWorks gibts ne function dafür :)

Delphi-Quellcode:
function dwColorToHTMLColor(const Color: TColor): String;
var
   iR, iG, iB: Byte;
begin
   iR:= GetRValue(Color);
   iG:= GetGValue(Color);
   iB:= GetBValue(Color);
   result:= Format('#%.2x%.2x%.2x', [iR, iG, iB]);
end;

himitsu 8. Mai 2007 18:03

Re: Color zu Hex
 
^^

Delphi-Quellcode:
Function ColorToHTMLColor(Color: TColor): String;
  Begin
    Color := ColorToRGB(Color);
    Result := Format('#%.2x%.2x%.2x', [GetRValue(Color),
      GetGValue(Color), GetBValue(Color)]);
  End;

// oder

Function ColorToHTMLColor(Color: TColor): String;
  Begin
    Color := ColorToRGB(Color);
    Color := ((Color shl 16) and $FF0000) or (Color and $00FF00)
      or ((Color shr 16) and $0000FF);
    Result := '#' + IntToStr(Color, 6);
  End;

// ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 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