![]() |
Farbkonvertierung scheint fehlerhaft!?
Hallo Leute!
Ich habe das Problem, dass mir eine Farbkonvertierung teilweise "falschen" oder unvollständigen Code zurückgibt.
Delphi-Quellcode:
Komischerweise schreibt mir dir Funktion manchmal folgendes in mein Edit zurück!
function ConvertToDelphiColor(Html : string) : TColor;
begin while Pos('#', Html) <> 0 do Delete(Html, Pos('#', Html), 1); Html := (Copy(Html,5,2) + Copy(Html,3,2) + Copy(Html,1,2)); Result := StrToInt('$' + Html); end; #ff0| statt #ff0066 Woran kann das liegen?? Ich rufe folgende auf:
Delphi-Quellcode:
Der Fehler tritt aber auch auf, so glaube ich, wenn ich LowerCase weg lasse! Ich weiss einfach nicht, was da falsch lkäuft, denn dieser Fehler tritt nicht immer auf, aber doch häufig! Wer kann helfen?
if ColorDialog1.Execute then ed_css_hg_col_link.Text:=LowerCase(ConvertToHtmlColor(ColorDialog1.Color));
|
Re: Farbkonvertierung scheint fehlerhaft!?
Hi,
versuche es mal mit dieser Funktion:
Delphi-Quellcode:
Edit: Und noch die Umkehrfunktion:
function HTML2Color(const HTML: String): Integer;
var Offset: Integer; begin if HTML[1] = '#' then Offset := 1 else Offset := 0; Result := Integer(StrToInt('$' + Copy(HTML, Offset + 1, 2))) + Integer(StrToInt('$' + Copy(HTML, Offset + 3, 2))) shl 8 + Integer(StrToInt('$' + Copy(HTML, Offset + 5, 2))) shl 16; end;
Delphi-Quellcode:
mfG
function Color2HTML(Color: TColor): String;
function Swap(Color: TColor): TColor; begin Result := Color and $FF0000 shr 16 + Color and $00FF00 + Color and $0000FF shl 16; end; begin try Result := '#' + IntToHex(Byte(Color), 2) + IntToHex(Byte(Color shr 8), 2) + IntToHex(Byte(Color shr 16), 2); except Result := '#000000'; end; end; mirage228 |
Re: Farbkonvertierung scheint fehlerhaft!?
ok, ich versuchs, aber ist denn die andere function etwa fehlerhaft!?
|
Re: Farbkonvertierung scheint fehlerhaft!?
Moin Tom,
überprüfe doch einfach mal, was Du wirklich im Parameter HTML übergibst. Für micht sieht es so aus, als wäre der übergebene String manchmal einfach zu kurz. |
Re: Farbkonvertierung scheint fehlerhaft!?
hm, ich hatte doch glatt die falsche funktion gepostet (und keiner hats gemerkt)
Delphi-Quellcode:
denn diese gibt ja den eigentlichen "string" zurück, aber vielleicht ist ja das das problem, dass kein string, sondern ein pchar ist!??
function ConvertToHtmlColor(Col : TColor): PChar;
var s : PChar; begin s := PChar(IntToHex(ColorToRgb(col),6)); s := PChar(Copy(s,5,2) + Copy(s,3,2) + Copy(s,1,2)); Result := PChar(Format('#%s', [s])); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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