Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Farbcodeumwandlung (https://www.delphipraxis.net/127026-farbcodeumwandlung.html)

Tim-94 6. Jan 2009 20:56


Farbcodeumwandlung
 
Hallo ich habe drei Fargen, es wäre schön, wenn ihr sie mir noch heute beantworten könntet :-D

Frage1:

Ich benötige einen Code um eine Hexafarbe in RGB umzuwandeln.


Frage2:

Ich benötige einen Code um eine Hexafarbe in eine TColorfarbe umzuwandeln.


Frage3:

Ich benötige einen Code um eine RGBfarbe in eine TColorfarbe umzuwandeln.

taaktaak 6. Jan 2009 20:57

Re: Farbcodeumwandlung
 
Was ist eine Hexafarbe?

Grolle 6. Jan 2009 21:01

Re: Farbcodeumwandlung
 
Hi,

mit Hilfe der Suche findet man z. B.:
http://www.delphipraxis.net/internal...ght=hextocolor

Viele Grüße ...

Valle 6. Jan 2009 21:02

Re: Farbcodeumwandlung
 
Gibt's alles hier. ;-)

@taaktaak: $1973DE4E

Mit freundlichen Grüßen,

Valle

taaktaak 6. Jan 2009 21:04

Re: Farbcodeumwandlung
 
Aha, das ist eine Hexafarbe.
Kenne zwar Latexfarbe, Acrylfarbe...
aber Hexafarbe kannte ich noch nicht
:mrgreen:

Tim-94 6. Jan 2009 21:28

Re: Farbcodeumwandlung
 
Ja ich kenn mich damit noch nich so aus!

Tim-94 6. Jan 2009 21:30

Re: Farbcodeumwandlung
 
jetzt bräuchte ich noch einen code um eine rgb farbe in eine TColorfarbe (für Delphi, z.b.: Panel1.Color) umzuwandeln :-D

Helmi 6. Jan 2009 21:34

Re: Farbcodeumwandlung
 
Hallo,

wie wärs mit
Delphi-Quellcode:
Panel1.Color := RGB($FF, $FF, $CC);
?

Namenloser 6. Jan 2009 21:56

Re: Farbcodeumwandlung
 
Zitat:

Zitat von Tim-94
jetzt bräuchte ich noch einen code um eine rgb farbe in eine TColorfarbe (für Delphi, z.b.: Panel1.Color) umzuwandeln :-D

Es gibt keinen Unterschied zwischen "RGB-Farbe" und "Hex-Farbe". Das sind nur verschiedene Darstellungsweisen. Beide Darstellungsformen sind 24bit (= 3 Byte) Wertgroß, mit jeweils 8 Bit (=1 byte) für jede Farbkomponente. Der Typ TColor in Delphi ist allerdings 32 Bit groß, weil noch die zusätzliche Information darüber benötigt wird, ob es sich um eine Systemfarbe (wie z.B. clBtnFace) handelt, und weil es einfacher ist, mit 32 Bit großen Werten zu hantieren (auf einem 32-Bit-System).

Wie du das ganze aber darstellst, ist Geschmackssache, denn im Grunde ist alles nur eine Folge aus "Nullen und Einsen" (ich hasse den Ausdruck).

Tim-94 6. Jan 2009 22:22

Re: Farbcodeumwandlung
 
Jo danke schonmal ich probier noch ein bisschen rum :-D

Cyf 7. Jan 2009 00:38

Re: Farbcodeumwandlung
 
TColor ist wenn ichs grad richtig im Kopf hab auch nur so aufgebaut (wobei es glaube ich sogar fertige Funktionen/Cast zum umwandeln egeben könnte):

Delphi-Quellcode:
TColorRecord = record
  NULL: Byte // ist 0
  Blue: Byte
  Green: Byte
  Red: Byte
end;
Also einfach nur Blau und Rot vertauscht.

Namenloser 7. Jan 2009 00:41

Re: Farbcodeumwandlung
 
Ist das nicht
Delphi-Quellcode:
TColorRecord = record
  R,
  G,
  B,
  A: byte;
end;
?

Ich meine da wäre wieder irgendwas mit Endian gewesen... aber ich kann mir das eh nie merken :wall:

Btw, zum ermitteln bestimmter Komponenten gibt es die Funktionen GetRValue, GetGValue und GetBValue: Man sollte aber vorher mit der Funktion ColorToRGB sichergehen, dass man auch wirklich eine RGB-Farbe hat, und keine Systemfarbe (denn die werden eben anders gespeichert, wie ich in meinem letzten beitrag beschrieben habe).

Cyf 7. Jan 2009 00:53

Re: Farbcodeumwandlung
 
Ja hast recht, das war falsch von mir.

Kleiner Test:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
type
  ColorBytes = array[0..3] of Byte;

var
  aColor: TColor;

  procedure ShowBytes;
  var
    i: Byte;
  begin
    for i := 0 to 3 do
    begin
      Showmessage(IntToStr(ColorBytes(aColor)[i]));
    end;
    Showmessage('----------------------');
  end;

begin
  aColor:= clRed;
  ShowBytes;
  aColor:= clBlue;
  ShowBytes;
  aColor:= clGreen;
  ShowBytes;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 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