Delphi-PRAXiS
Seite 2 von 2     12   

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)

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 15:23 Uhr.
Seite 2 von 2     12   

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