![]() |
hex-codes in RGB werte und umgekehrt??
gibt es in delphi eine funktion, mit der man RotGrünBlau - Farbanteile in die Hexcodes umwandelt und umgekehrt??
also z.B. #FBF66F = R: 251 G: 246 B: 111 oder andersrum?? und noch eine frage: kann man in einem delphi programm irgendwie hexadezimalfarben anzeigen, also z.B eine fläche mit der farbe #F123CD oder mit den RGB anteilen (z.B. 255, 156, 211) füllen??? danke für eure hilfe... |
Re: hex-codes in RGB werte und umgekehrt??
Hallo,
hast du dir schon mal die Funktionen ColorToString() bzw. StringToColor() angesehen? Grüße vom marabu |
Re: hex-codes in RGB werte und umgekehrt??
IntToHex ?
Delphi-Quellcode:
MyHex := '#' + IntToHex(MyRGB, 2);
|
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
Delphi-Quellcode:
oder
IntToHex(MyRGB, 6)
Delphi-Quellcode:
wäre bei Farben die bessere Wahl ;)
IntToHex(MyRGB, 8)
|
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
Delphi-Quellcode:
Mit GetGValue():
Caption:= Format('#%.2x%.2x%.2x', [251, 246,111]);
Delphi-Quellcode:
wäre eine Möglichkeit.
var
Col: Cardinal; begin Col:= $FBF66F; Caption:= Format('%d %d %d',[GetBValue(Col), GetGValue(Col),GetRValue(Col)]); |
Re: hex-codes in RGB werte und umgekehrt??
Delphi-Quellcode:
das ist von rgb in Hex, oder?
Caption:= Format('#%.2x%.2x%.2x', [251, 246,111]);
Mit GetGValue():
Delphi-Quellcode:
wäre eine Möglichkeit.[/quote]
var
Col: Cardinal; begin Col:= $FBF66F; Caption:= Format('%d %d %d',[GetBValue(Col), GetGValue(Col),GetRValue(Col)]); und das von hex in rgb oder??? aber wie kann man jetzt eine fläche im formular mit einer rgb-farbe oder hex farbe füllen?? da gibts doch bloß die normlaen grundfarben, oder? Zitat:
weil myRGB muss ja 3 zahlen haben |
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
Self.Color:= RGB($FF,0,0);//ROT
Self.Color:= RGB($FB,$F6,$6F);//Deine Farbe |
Re: hex-codes in RGB werte und umgekehrt??
danke für deine antwort...
also: Zitat:
|
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
RGB(255,126,100) |
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
noch eine frage: man kann doch irgendwie so ein farben-fenster öffnen, indem man seine farbe auswählen kann (so ein fenster wie in paint, wenn man eine neue farbe nimmt) ich kenne das von anderen programmen... also so ein fenster, indem rechts eine große farbenübersicht ist, in der man seine farben auswäjlen kann, und links ein paar kästchen mit den grundfarben sind... ich glaube da gibt es doch einen farben-dialog, oder? wie kann man auf den im programm zugreifen?? |
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
genau, als Parameter brauchst du der Funktion aber nicht unbedingt Hex werte übergeben. Zitat:
Delphi-Quellcode:
if Colordialog1.Execute then
self.Color:= Colordialog1.Color; |
Re: hex-codes in RGB werte und umgekehrt??
Hier mal 2 Funktionen für dich, die ich selbst auch benutze:
Delphi-Quellcode:
function HtmlColorToColor(AHtmlColor: string): TColor;
begin Delete(AHtmlColor, 1, 1); Result := StrToInt('$' + Copy(AHtmlColor, 5, 2) + Copy(AHtmlColor, 3, 2) + Copy(AHtmlColor, 1, 2)); end; function ColorToHTMLColor(Color: TColor): String; begin Color := ColorToRGB(Color); Result := Format('#%.2x%.2x%.2x', [GetRValue(Color),GetGValue(Color), GetBValue(Color)]); end; |
Re: hex-codes in RGB werte und umgekehrt??
ich hab jetzt noch ein problem:
bei der umwandlung von hex in rgb muss ja die Hexfarbe vom typ Cardinal sein... wie kann ich einen Inhalt eines Edit's (typ = String) in den typ Cardinal umwandeln?? hier mal mein hex in RGB umwandel-Qelltext: Bitte auf kommentare antworten!!
Delphi-Quellcode:
Und hier mein RGB in Hex umwandel - quelltext:
procedure TForm1.Umwandeln1Click(Sender: TObject);
begin Hex1 := Hexcolor.Text; Col := Hex1; // Hier von String in Cardinal umwandeln!!!! RGBan.Caption := Format('%d %d %d',[GetBValue(Col), GetGValue(Col),GetRValue(Col)]); // Muss man hier // auch was wieder in einen String umwandeln??? Panel1.Color:= RGB(GetBValue(Col),GetGValue(Col),GetRValue(Col)); // Funktioniert das so??? end; Bitte auch auf Kommentare antworten!!
Delphi-Quellcode:
procedure TForm1.Umwandeln2Click(Sender: TObject);
begin R := ran.Text; //String G := gan.Text; //String B := ban.Text; //String Hexcolor2.Caption := Format('#%.2x%.2x%.2x', [R,G,B]); // R,G,B hier Float oder Integer sein müssen ??? end; |
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
![]()
Delphi-Quellcode:
procedure TForm1.Umwandeln1Click(Sender: TObject);
begin Hex1 := Hexcolor.Text; Col := Stringtocolor('$00FF0088'); // Hier von String in Cardinal umwandeln!!!! RGBan.Caption := Format('%d %d %d',[GetBValue(Col), GetGValue(Col),GetRValue(Col)]); // Muss man hier // auch was wieder in einen String umwandeln??? Mht Format doch ...? Panel1.Color:= Col; // Funktioniert das so??? -> nein, auch einfacher ;-) end;
Delphi-Quellcode:
procedure TForm1.Umwandeln2Click(Sender: TObject);
begin R := ran.Text; //String G := gan.Text; //String B := ban.Text; //String Hexcolor2.Caption := Format('#%.2x%.2x%.2x', [R,G,B]); // R,G,B hier Float oder Integer sein müssen ??? Weder noch - es müssen imho Byte-Werte sein (Ganzzahlig bis 255) end; |
Re: hex-codes in RGB werte und umgekehrt??
danke für die antwort, du hast mir perfekt geholfen... danke
noch eine frage: wie (mit welcher funktion) wandelt man von String in Byte um???
Delphi-Quellcode:
könntet ihr mir nochmal schnell helfen?? danke...
procedure TForm1.Umwandeln2Click(Sender: TObject);
begin R := ran.Text; G := gan.Text; B := ban.Text; Hexcolor2.Caption := Format('#%.2x%.2x%.2x', [R,G,B]); Panel2.Color := RGB (R, G, B); // hier brauche ich bei R, G, B Bytes ... keine Strings wie??? end; |
Re: hex-codes in RGB werte und umgekehrt??
Kann mir Bitte einer helfen???????????????????????????
Ich bräuchte es dringend... |
Re: hex-codes in RGB werte und umgekehrt??
Hi,
du musst aber darauf achten, dass gültige Zahlen in den Feldern sind und dass der Bereich der Zahlen zwischen 0..255 liegt.
Delphi-Quellcode:
RGB(StrToInt(R), StrToInt(G), StrToInt(B));
|
Re: hex-codes in RGB werte und umgekehrt??
Hallo Max,
du liest scheinbar die Beiträge in deinem Thread nicht sehr genau. In Beitrag #12 hättest du sonst schon die Funktion StrToInt() kennen gelernt und die Funktion StringToColor() stand bereits in Beitrag #2 - vor zwei Tagen ... Nachdenkliche Grüße |
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
aber ich habe nicht gewusst, das die funktionen StrToInt und StrToColor auch zum umwandeln in Bytes benützt werden können bin halt noch ein anfänger... :roll: danke bitsetter für die antwort //Edit: Jetzt funzt alles perfekt, ausser das:
Delphi-Quellcode:
er meldet das #%.2x% ein ungültiges Format ist!
procedure TForm1.Umwandeln2Click(Sender: TObject);
begin try R := ran.Text; G := gan.Text; B := ban.Text; Hexcolor2.Caption := Format('#%.2x%.2x%.2x', [R,G,B]); Panel2.Color := RGB(StrToInt(R), StrToInt(G), StrToInt(B)); except ShowMessage('Ungülte Farbenwerte! Bitte überprüfen!'); end; end; was muss ich ändern? |
Re: hex-codes in RGB werte und umgekehrt??
Liste der Anhänge anzeigen (Anzahl: 2)
sry mein 2 post aber:
ich hab noch ein problem!
Delphi-Quellcode:
wenn ich 95CAFF für Hex1 nehme: kommt als RGB 255 202 149 // es muss 149 202 255 lauten!! Und das Pnael ziegt orange an, obwohl es hellblau ist! (siehe bug1.bmp)
procedure TForm1.Umwandeln1Click(Sender: TObject);
begin try Hex1 := '$'+Hexcolor.Text; Col := StringToColor(Hex1); RGBan.Caption := Format('%d %d %d',[GetRValue(Col), GetGValue(Col),GetBValue(Col)]); Panel1.Color:= Col; except ShowMessage ('Ungültige Farbenwerte! Bitte überprüfen!') end; end; wenn ich DB1B44 nehme kommt: 68 27 219 // Jetzt richtig ausser das es 189 statt 219 heißen muss! Und das Panel zeigt dunkelblau an, obwohl es dunkelrot ist!! (siehe bug2.bmp) WARUM??? |
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
Delphi-Quellcode:
Auch da musst du wieder darauf achten, dass gültige Zahlen in den Feldern sind und dass der Bereich der Zahlen zwischen 0..255 liegt.
begin
R := ran.Text; G := gan.Text; B := ban.Text; Hexcolor2.Caption := Format('#%.2x%.2x%.2x', [StrToInt(R),StrToInt(G),StrToInt(B)]); Zitat:
Delphi-Quellcode:
Wenn du es trotzdem so rum möchtest, dann gibt es hier im Thread schon einiges an Code dafür.
StringToColor('$0000FF');//= ROT;
StringToColor('$00FF00');//= Grün StringToColor('$FF0000');//= Blau |
Re: hex-codes in RGB werte und umgekehrt??
Ähm, was ist mit den Funktionen, die ich dir gepostet hab?!
|
Re: hex-codes in RGB werte und umgekehrt??
danke bitsetter so funzt es perfekt:
Delphi-Quellcode:
@bitsetter:
procedure TForm1.Umwandeln2Click(Sender: TObject);
begin try R := ran.Text; G := gan.Text; B := ban.Text; Hexcolor2.Caption := Format('#%.2x%.2x%.2x', [StrToInt(R),StrToInt(G),StrToInt(B)]); Panel2.Color := RGB(StrToInt(R), StrToInt(G), StrToInt(B)); except ShowMessage('Ungülte Farbenwerte! Bitte überprüfen!'); end; end; aber: ich versteh irgendwie deine antwort zu dem nicht, bitsetter! was muss ich da jetzt machen?? :
Delphi-Quellcode:
Was bewirken eigentlich diese zeichen: %d %d %d
procedure TForm1.Umwandeln1Click(Sender: TObject);
begin try Hex1 := '$'+Hexcolor.Text; Col := StringToColor(Hex1); RGBan.Caption := Format('%d %d %d',[GetRValue(Col), GetGValue(Col),GetBValue(Col)]); Panel1.Color:= Col; except ShowMessage ('Ungültige Farbenwerte! Bitte überprüfen!') end; end; Zitat:
Zitat:
@svenkan: ich komm irgendwie nicht mit deiner funktion zurecht... außerdem hab ich ja selber auch schon angefangen, aber halt mit fehlern... |
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
![]() Noch eine Variante
Delphi-Quellcode:
var
Col: TColor; begin Col:= StringToColor('$0000FF');//jetzt Blau Col:= ColorToRGB(Col); Panel1.Color:= RGB(GetBValue(Col), GetGValue(Col), GetRValue(Col)); |
Re: hex-codes in RGB werte und umgekehrt??
danke für die antwort... das ist ja viel einfacher...
Könntet ihr mir noch folgenden Kommentar beantworten?
Delphi-Quellcode:
procedure TForm1.Umwandeln1Click(Sender: TObject);
begin try Hex1 := '$'+Hexcolor.Text; Col:= StringToColor(Hex1); Col:= ColorToRGB(Col); RGBan.Caption := Col; //Wie Col zu String umwandeln?? Panel1.Color:= RGB(GetBValue(Col), GetGValue(Col), GetRValue(Col)); except ShowMessage ('Ungültige Farbenwerte! Bitte überprüfen!') end; end; |
Re: hex-codes in RGB werte und umgekehrt??
Zitat:
Col(or) müsste ein Integer-Wert sein. Daher müsste Dir auch hier die Funktion IntToStr(Col) weiterhelfen können. Die Hex/Integer/String - Umwandlungen kannst Du ja aus den obigen Posts entnehmen - falls nötig. Hoffe es funktioniert so! SCRaT |
Re: hex-codes in RGB werte und umgekehrt??
Hallo,
die Farbzerlegung muss nicht zeitraubend über Funktionen erfolgen, Windows kennt einen speziellen Datentyp dafür:
Delphi-Quellcode:
Freundliche Grüße
var
clr: TColor; pe: TPaletteEntry absolute clr; // Redefinition begin clr := clRed; // interner Farbname clr := StringToColor('clRed'); // externer Farbname clr := StringToColor('$0000FF'); // alternativer Code für clRed with pe do begin peRed := 255; // volle Intensität bei Rot peGreen := StrToInt('$80'); // halbe Intensität bei Grün end; pe.peBlue := $40; // geringe Intensität bei Blau clr := ColorToRGB(clr); // Paletten-Flag entfernen ShowMessage('$' + IntToHex(clr, 6)); // Ausgabe $BBGGRR with TPaletteEntry(clr) do // type cast ShowMessage(Format('$%.2x%.2x%.2x', [peBlue, peGreen, peRed])); end; |
Re: hex-codes in RGB werte und umgekehrt??
danke marabu, aber ich hab es jetzt auch mit meiner version geschafft...
danke nochmal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 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