Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi RGBToHex und umgekehrt (https://www.delphipraxis.net/200715-rgbtohex-und-umgekehrt.html)

EWeiss 18. Mai 2019 10:05

RGBToHex und umgekehrt
 
Ich konvertiere RGB zu Hex.

Delphi-Quellcode:
function TSkinEngine.RGBtoHEX(ColrRGB: ColorRef): string;
var
 R, G, B: Byte;
begin

  R:= GetRValue(ColrRGB);
  G:= GetGValue(ColrRGB);
  B:= GetBValue(ColrRGB);

  Result:= Format('$%.2x%.2x%.2x', [R, G, B]);
end;

Delphi-Quellcode:
UseColor := RGBtoHEX(RGB(11,37,86)); // := $0B2556;


jetzt umgekehrt.
Delphi-Quellcode:
    if UseColor > '' then
    begin
      R := Byte(StrToInt('$' + Copy(UseColor, 3, 2)));
      G := Byte(StrToInt('$' + Copy(UseColor, 5, 2)));
      B := Byte(StrToInt('$' + Copy(UseColor, 7, 2)));
    end
Die Werte von R, G, B sind aber jetzt komplett anders. Was mache ich falsch?
Delphi-Quellcode:
R := 178;
G := 85;
B := 6;
gruss

EWeiss 18. Mai 2019 10:10

AW: RGBToHex und umgekehrt
 
sorry für die Post habe mich da um eins vertan ;)

Delphi-Quellcode:
      R := Byte(StrToInt('$' + Copy(UseColor, 2, 2)));
      G := Byte(StrToInt('$' + Copy(UseColor, 4, 2)));
      B := Byte(StrToInt('$' + Copy(UseColor, 6, 2)));
So stimmt es.

gruss

peterbelow 18. Mai 2019 10:43

AW: RGBToHex und umgekehrt
 
Zitat:

Zitat von EWeiss (Beitrag 1432486)
Ich konvertiere RGB zu Hex.

Delphi-Quellcode:
function TSkinEngine.RGBtoHEX(ColrRGB: ColorRef): string;
var
 R, G, B: Byte;
begin

  R:= GetRValue(ColrRGB);
  G:= GetGValue(ColrRGB);
  B:= GetBValue(ColrRGB);

  Result:= Format('$%.2x%.2x%.2x', [R, G, B]);
end;

Delphi-Quellcode:
UseColor := RGBtoHEX(RGB(11,37,86)); // := $0B2556;


jetzt umgekehrt.
Delphi-Quellcode:
    if UseColor > '' then
    begin
      R := Byte(StrToInt('$' + Copy(UseColor, 3, 2)));
      G := Byte(StrToInt('$' + Copy(UseColor, 5, 2)));
      B := Byte(StrToInt('$' + Copy(UseColor, 7, 2)));
    end
Die Werte von R, G, B sind aber jetzt komplett anders. Was mache ich falsch?

Du kannst nicht zählen :wink:. Dein UseColor hat 7 Zeichen, R belegt die Positionen 2 und 3, G 4 und 5, B 6 und 7.

EWeiss 18. Mai 2019 10:59

AW: RGBToHex und umgekehrt
 
Zitat:

Du kannst nicht zählen . Dein UseColor hat 7 Zeichen, R belegt die Positionen 2 und 3, G 4 und 5, B 6 und 7.
Warum musst du hier noch deinen Senf beitragen ?

Ich habe doch vor deinem Beitrag es schon selbst berichtigt.
Zitat:

sorry für die Post habe mich da um eins vertan
Ich weis welche plätze hier belegt werden :)

Nochmal.
Delphi-Quellcode:
R := Byte(StrToInt('$' + Copy(UseColor, 2, 2)));
G := Byte(StrToInt('$' + Copy(UseColor, 4, 2)));
B := Byte(StrToInt('$' + Copy(UseColor, 6, 2)));
gruss

peterbelow 19. Mai 2019 10:16

AW: RGBToHex und umgekehrt
 
Zitat:

Zitat von EWeiss (Beitrag 1432494)
Warum musst du hier noch deinen Senf beitragen ?

Ich habe doch vor deinem Beitrag es schon selbst berichtigt.
gruss

Überschneidung, sorry. Deine Korrektur war noch nicht sichtbar als ich mit meiner Antwort angefangen habe (und dann unterbrochen wurde).

EWeiss 19. Mai 2019 10:24

AW: RGBToHex und umgekehrt
 
Zitat:

Zitat von peterbelow (Beitrag 1432530)
Zitat:

Zitat von EWeiss (Beitrag 1432494)
Warum musst du hier noch deinen Senf beitragen ?

Ich habe doch vor deinem Beitrag es schon selbst berichtigt.
gruss

Überschneidung, sorry. Deine Korrektur war noch nicht sichtbar als ich mit meiner Antwort angefangen habe (und dann unterbrochen wurde).

Na ja nach 30 Minuten hätte es eigentlich sichtbar sein müssen.. ;)
Aber egal.

Trotzdem Danke!
Sorry für meine Unprofessionelle Antwort.
Zitat:

Warum musst du hier noch deinen Senf beitragen ?
gruss


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