Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Webfarben nutzen (https://www.delphipraxis.net/61236-webfarben-nutzen.html)

mh166 19. Jan 2006 21:55

Re: Webfarben nutzen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Also ich hab jetzt alle drei Codes mal in ein test gebaut. Dabei ist rausgekommen, dass sich die letzten beiden Algos absolut nichts nehmen, von der Performance. Der erste jedoch braucht deutlich länger!

Etwas haben aber alle gleich bzw. gerade nicht gleich: nämlich das Ergebnis! Ich weiß nich, wer das jetzt probiert hat, aber ich bekomme bei allen 3 Funktionen unterschiedliche Ergebnisse raus. :lol:

Naja, screenie + echse im Anhang...

mfg, mh166

3_of_8 19. Jan 2006 22:04

Re: Webfarben nutzen
 
Was habe ich gesagt? Glaubt ihr mir jetzt? Werde ich jetzt mit Konfetti beworfen und bekomme einen irrelevanten virtuellen Triumphzug? :mrgreen:

(Nein, das war nicht ernst gemeint)

CG2003 19. Jan 2006 22:06

Re: Webfarben nutzen
 
Zitat:

Zitat von 3_of_8
Werde ich jetzt mit Konfetti beworfen und bekomme einen irrelevanten virtuellen Triumphzug?

:hello: :hello: :hello:

Nee, mal im Ernst, ich fand' es mit den Strings auch "zu hart"...

xaromz 19. Jan 2006 22:13

Re: Webfarben nutzen
 
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 :mrgreen: .

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 :zwinker: [/add]

3_of_8 19. Jan 2006 22:15

Re: Webfarben nutzen
 
Ich bin mir ziemlich sicher, dass der Compiler das mit dem *256 usw. schon richtig hinbiegt.

Compiler Magic halt.

EDIT: Die Fehler habe ich nicht bemerkt, weil ich getestet habe mit #FF0000, #00FF00, #FFFF00 usw.

Verdammt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 Uhr.
Seite 2 von 2     12   

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