Alternativ könnte man auch einen record verwenden:
Delphi-Quellcode:
TRGBQuad =
packed record // ist schon in irgendeiner Unit definiert, mir fällt aber gerade nicht ein, in welcher
r, g, b, a: byte
end;
procedure Foo(Color: TColor);
var
RGB: PRGBQuad;
begin
RGB := PRGBQuad(@Color);
...
RGB^.r := ...
end;
Dabei fällt mir gerade etwas auf: Kann man
absolute eigentlich auch mit Parametern benutzen? Dann könnte es so noch einen Tick eleganter gehen:
Delphi-Quellcode:
procedure Foo(Color: TColor);
var
RGB: TRGBQuad
absolute Color;
begin
...
end;