AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi hex-codes in RGB werte und umgekehrt??
Thema durchsuchen
Ansicht
Themen-Optionen

hex-codes in RGB werte und umgekehrt??

Ein Thema von maxmax · begonnen am 2. Aug 2007 · letzter Beitrag vom 5. Aug 2007
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: hex-codes in RGB werte und umgekehrt??

  Alt 4. Aug 2007, 12:52
Zitat von maxmax:
Jetzt funzt alles perfekt, ausser das:
Delphi-Quellcode:
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;
er meldet das #%.2x% ein ungültiges Format ist!
was muss ich ändern?
Ich nehme mal an, dass die Variablen R, G und B Strings sind, also musst du diese erst in Bytes umwandeln.
Delphi-Quellcode:
begin
R := ran.Text;
G := gan.Text;
B := ban.Text;
Hexcolor2.Caption := Format('#%.2x%.2x%.2x', [StrToInt(R),StrToInt(G),StrToInt(B)]);
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.

Zitat von maxmax:
sry mein 2 post aber:
ich hab noch ein problem!

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)
[/b]
Du gibst die Werte andersrum ein:
Delphi-Quellcode:
StringToColor('$0000FF');//= ROT;
StringToColor('$00FF00');//= Grün
StringToColor('$FF0000');//= Blau
Wenn du es trotzdem so rum möchtest, dann gibt es hier im Thread schon einiges an Code dafür.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#22

Re: hex-codes in RGB werte und umgekehrt??

  Alt 4. Aug 2007, 13:22
Ähm, was ist mit den Funktionen, die ich dir gepostet hab?!
Sven Kannenberg
  Mit Zitat antworten Zitat
Benutzerbild von maxmax
maxmax

Registriert seit: 21. Jun 2007
Ort: Garmisch-Partenkirchen
107 Beiträge
 
Delphi 7 Personal
 
#23

Re: hex-codes in RGB werte und umgekehrt??

  Alt 4. Aug 2007, 13:44
danke bitsetter so funzt es perfekt:
Delphi-Quellcode:
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;
@bitsetter:
aber: ich versteh irgendwie deine antwort zu dem nicht, bitsetter! was muss ich da jetzt machen?? :
Delphi-Quellcode:
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;
Was bewirken eigentlich diese zeichen: %d %d %d

Zitat von bitsetter:
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.
1. Ich hab sie ja richtig eingegeben...

Zitat von bitsetter:
Zitat von maxmax:
sry mein 2 post aber:
ich hab noch ein problem!

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)
[/b]
Du gibst die Werte andersrum ein:
Delphi-Quellcode:
StringToColor('$0000FF');//= ROT;
StringToColor('$00FF00');//= Grün
StringToColor('$FF0000');//= Blau
Wenn du es trotzdem so rum möchtest, dann gibt es hier im Thread schon einiges an Code dafür.
Ich geb die werte aber per Edit - feld ein und ich will sie ganz normal eingeben... Aber warum funzt es nicht?????


@svenkan: ich komm irgendwie nicht mit deiner funktion zurecht...
außerdem hab ich ja selber auch schon angefangen, aber halt mit fehlern...
Max S.
mfg maxmax
http://www.maxxam.de
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#24

Re: hex-codes in RGB werte und umgekehrt??

  Alt 4. Aug 2007, 14:08
Zitat von maxmax:
Was bewirken eigentlich diese zeichen: %d %d %d
Das sind Delphi-Referenz durchsuchenFormatbezeichner Zitat:",D Integer Dezimal. Zeigt Integer als Dezimalzahlen an. Gilt auch für Integer-Werte in Datenstrukturen."

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));
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von maxmax
maxmax

Registriert seit: 21. Jun 2007
Ort: Garmisch-Partenkirchen
107 Beiträge
 
Delphi 7 Personal
 
#25

Re: hex-codes in RGB werte und umgekehrt??

  Alt 4. Aug 2007, 15:28
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;
Max S.
mfg maxmax
http://www.maxxam.de
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#26

Re: hex-codes in RGB werte und umgekehrt??

  Alt 4. Aug 2007, 15:39
Zitat von maxmax:
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;
Hallo!!

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
Michael Kübler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#27

Re: hex-codes in RGB werte und umgekehrt??

  Alt 4. Aug 2007, 17:20
Hallo,

die Farbzerlegung muss nicht zeitraubend über Funktionen erfolgen, Windows kennt einen speziellen Datentyp dafür:

Delphi-Quellcode:
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;
Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von maxmax
maxmax

Registriert seit: 21. Jun 2007
Ort: Garmisch-Partenkirchen
107 Beiträge
 
Delphi 7 Personal
 
#28

Re: hex-codes in RGB werte und umgekehrt??

  Alt 5. Aug 2007, 08:33
danke marabu, aber ich hab es jetzt auch mit meiner version geschafft...
danke nochmal
Max S.
mfg maxmax
http://www.maxxam.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 21:51 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