Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

bluescreen25 18. Jan 2006 16:22


Webfarben nutzen
 
Hallo, kann man eigendlich die Webfarben (z.B. #111111) direkt nutzen? Wenn ich z.B. die Farben in einer .Ini angeben möchte und dann für Font.color etc...?

3_of_8 18. Jan 2006 16:27

Re: Webfarben nutzen
 
Die musst du dann wohl parsen.

Delphi-Quellcode:
function HTMLColorToColor(Color: String): TColor;
begin
Result:=StringToColor('$00'+color[6]+color[7]+color[4]+color[5]+color[2]+color[3]);
end;
Das müsste klappen.

bluescreen25 18. Jan 2006 19:25

Re: Webfarben nutzen
 
Alles OK. Es funktioniert prima !Danke !

3_of_8 18. Jan 2006 22:00

Re: Webfarben nutzen
 
Bittesehr. Es gäbe noch eine permormantere Lösung ohne StringToColor, aber das hier ist eindeutig leichter.

Matze 18. Jan 2006 22:05

Re: Webfarben nutzen
 
Zitat:

Zitat von 3_of_8
Bittesehr. Es gäbe noch eine permormantere Lösung ohne StringToColor, aber das hier ist eindeutig leichter.

Also wenn du das schon anspricht, wollen evtl. einige auch diese Lösung wissen. Poste doch einen Link oder den Code, mit deinem letzten Beitrag fängt so keiner etwas an. :zwinker:

3_of_8 18. Jan 2006 22:15

Re: Webfarben nutzen
 
Na schön, ich versuche es. Aber das ist halt etwas schwerer.

Delphi-Quellcode:
function HexNumberToDec(AValue: Char): Cardinal;
begin
case AValue of
'0'..'9': Result:=ord(AValue)-48;
'A'..'F': Result:=ord(AValue)-55;
end;
end;

function HTMLColorToColor(Color: String): TColor;
begin
Result:=HexNumberToDec(Color[2])+HexNumberToDec(Color[3])*16+HexNumberToDec(Color[4])*256+
 HexNumberToDec(Color[5])*4096+HexNumberToDec(Color[6])*65536+HexNumberToDec(Color[7])*1048576;
end;
Getestet und: Überraschung, es funktioniert. Perfekt. Ich bekomme schon langsam Angst vor mir selber. :shock:

Naja oder so ähnlich. Wenn irgendjemand den Algorithmus oben noch tunen kann, dann bitte ich um Verbesserung.

mh166 19. Jan 2006 07:14

Re: Webfarben nutzen
 
Ich habs jetzt nich getestet, weil ich gleich zum Bus muss (diese elende Schule aber auch... :evil: :mrgreen:) Aber irgendwie kann ich mir nicht vorstellen, dass deine Lösung performanter ist? Kann aber auch ein subjektiver Eindruck sein... Werds heute Nachmittag mal testen! :)

mfg, mh166

sakura 19. Jan 2006 07:37

Re: Webfarben nutzen
 
Ansonsten findest Du in der CodeLibrary noch eine Funktion, welche auch die Standardnamen der HTML Farben übersetzt.

...:cat:...

xaromz 19. Jan 2006 09:02

Re: Webfarben nutzen
 
Hallo,

ich weiß nicht, ob Delphi das automatisch macht, aber man sollte lieber Shiften. Multiplikation ist immer etwas langsam:
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; // <- Kleinbuchstaben vergessen
  end;
end;

function HTMLColorToColor(const Color: String): TColor;
begin
  Result := HexNumberToDec(Color[2]) + HexNumberToDec(Color[3]) shl 4
    + HexNumberToDec(Color[4]) shl 8 + HexNumberToDec(Color[5]) shl 12
    + HexNumberToDec(Color[6]) shl 16 + HexNumberToDec(Color[7]) shl 20;
end;
Gruß
xaromz

3_of_8 19. Jan 2006 12:29

Re: Webfarben nutzen
 
Wahrscheinlich wird das eh zu shl durch Compilermagic.

Aber an shiften habe ich jetzt gar nicht gedacht. Hab ich vergessen.

Aber performanter als mit dem Stringrumgefummel ist es wahrscheinlich schon.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.
Seite 1 von 2  1 2      

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