Thema: Delphi Webfarben nutzen

Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#14

Re: Webfarben nutzen

  Alt 19. Jan 2006, 23:13
Hallo,

bei unseren Routinen (2 + 3) ist tatsächlich ein Fehler drin (die Nibbles waren vertauscht). Hier die richtige Routine:
Delphi-Quellcode:
function HexNumberToDec(AValue: Char): Cardinal;
begin
  case AValue of
    '0'..'9': Result := Ord(AValue) - 48;
    'A'..'F': Result := Ord(AValue) - 55;
    'a'..'f': Result := Ord(AValue) - 87;
  end;
end;

function HTMLColorToColor(const Color: String): TColor;
begin
  Result := HexNumberToDec(Color[3]) + HexNumberToDec(Color[2]) shl 4
    + HexNumberToDec(Color[5]) shl 8 + HexNumberToDec(Color[4]) shl 12
    + HexNumberToDec(Color[7]) shl 16 + HexNumberToDec(Color[6]) shl 20;
end;
Zu Deinem Benchmark:
Bei der Eingabe fehlt das # am Anfang, deshalb gibt's auch verschiedene Ergebnisse (abgesehen von obigem Dreher). Mit shl (und const) ist die Routine tatsächlich ~1% schneller, aber das ist hier wohl völlig egal .

Gruß
xaromz

[add] Ich hab mir jetzt mal Deinen Benchmark angesehen. Was misst Du da? Jeden einzelnen Aufruf? Normalerweise lässt man sowas 2-3 Millionen mal durchlaufen und misst die Gesamtzeit, um Seiteneffekte auszuschließen. Nur so als Anregung [/add]
  Mit Zitat antworten Zitat