Longword gibt's ja bei Delphi auch: Bei 4 Bytes (A,R,G,B) könntest du doch auch DWORD als Datentyp nutzen?
Hier kann man ja sehen das ich auf Int64 Casten musste weil der zu berechnende Wert nicht in einen Integer passt.
a + (Int64((c and $FF000000) div $1000000) And 255);
Daher glaube ich nicht das man hier DWORD nehmen kann. Oder?
gruss
Wenn ich ich jetzt nicht verzählt habe dann ist $FF000000 und $1000000 ein 24Bit Wert, warum sollten die beiden nicht mit einem unsigned 32Bit Typ abgedeckt werden können?
Ausserdem
a+(c shr 6)
sollte das gleiche sein wie der obige Ausdruck. (hoffe ich hab mich bei den Bits nicht verzählt)
[ggf muß Du noch mit $FF maskieren]
Gruß
K-H