Es kommt drauf an.
Bei einem 32-Bit-Bitmap entspricht das höchste Byte z.B. der Transparenz.
(innerhalb des Bildes könnte man sogar sowas wie ein 10x10x10, 10x10x12- oder 11x11x10-Farbschema verwenden, als
RGB,
HSV oder sonstwie)
Im 24-Bit-
RGB-System für
TColor steckt in Byte 4 meist die zugrundeliegende Farbpalette.
http://www.delphipraxis.net/4067-rgb-tcolor-rgb.html
Delphi-Quellcode:
color
cpSystemPalette = $00;
cpActingPalette = $01;
cpLogicalPalette = $02;
cpNoColor = $1F;
cpDefaultColor = $20;
cpSystemColor = $FF;
cpNoColor or $FFFFFF {also $1FFFFFFF} = clNone {keine Farbe}
cpSystemColor or $xx {also $FF000000 bis $FF0000FF, aber aktuell nur bis etwa $FF00001F} = Systemfarben ala clScrollBar
cpSystemPalette or $xxxxxx =
RGB-System {ebenso cpActingPalette oder cpLogicalPalette, nur mit Runden auf mögliche Farben der Hardware}
http://docwiki.embarcadero.com/VCL/de/Graphics.TColor
Zitat:
Hat das höchstwertige Byte den Wert Null, erhalten Sie eine Farbe, die derjenigen in der Systempalette am ähnlichsten ist. Ist das höchstwertige Byte Eins ($01 bzw. 0x01), ergibt das eine Farbe, die derjenigen in der aktiven Palette am ähnlichsten ist. Wenn Sie das höchstwertige Byte auf Zwei ($02 bzw. 0x02) setzen, wird der Wert an die ähnlichste Farbe in der logischen Palette des aktuellen Gerätekontexts angepasst.
Auch wenn TColor quasi als LongInt deklariert ist, ist es besser, wenn man dessen Werte als LongWord interpretiert, bzw. als 4 einzelne Byte.
Erstmal ist es mit dem Palette-Byte einfacher, wenn es auch ein Byte ist
und dann sind 4 Byte (LongWord)
IMHO irgendwie verständlicher/übersichtlicher, als 3 Byte und 1 ShortInt (LongInt).