AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Farbkonvertierung scheint fehlerhaft!?

Ein Thema von torud · begonnen am 7. Nov 2004 · letzter Beitrag vom 7. Nov 2004
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Farbkonvertierung scheint fehlerhaft!?

  Alt 7. Nov 2004, 09:12
Hallo Leute!

Ich habe das Problem, dass mir eine Farbkonvertierung teilweise "falschen" oder unvollständigen Code zurückgibt.


Delphi-Quellcode:
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;
Komischerweise schreibt mir dir Funktion manchmal folgendes in mein Edit zurück!

#ff0|

statt

#ff0066

Woran kann das liegen??

Ich rufe folgende auf:
if ColorDialog1.Execute then ed_css_hg_col_link.Text:=LowerCase(ConvertToHtmlColor(ColorDialog1.Color)); 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?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Farbkonvertierung scheint fehlerhaft!?

  Alt 7. Nov 2004, 09:14
Hi,

versuche es mal mit dieser Funktion:

Delphi-Quellcode:
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;
Edit: Und noch die Umkehrfunktion:
Delphi-Quellcode:
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;
mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Farbkonvertierung scheint fehlerhaft!?

  Alt 7. Nov 2004, 09:30
ok, ich versuchs, aber ist denn die andere function etwa fehlerhaft!?
Danke
Tom
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Farbkonvertierung scheint fehlerhaft!?

  Alt 7. Nov 2004, 14:24
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Farbkonvertierung scheint fehlerhaft!?

  Alt 7. Nov 2004, 14:51
hm, ich hatte doch glatt die falsche funktion gepostet (und keiner hats gemerkt)

Delphi-Quellcode:
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;
denn diese gibt ja den eigentlichen "string" zurück, aber vielleicht ist ja das das problem, dass kein string, sondern ein pchar ist!??
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:57 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