Op gelijksoortige wijze heb ik dat al gedaan maar de IntToHex( GetRValue(Kleur1), 2 ) levert een string waarde op. Voor de gradient Vertex[0].Red moet ik een de volgende notatie hebben $FF00 dus gradient Vertex[0].Red := #FF00. Als ik gradient Vertex[0].Red := 255 schrijf wordt er een verkeerde kleur weergegeven.
Zie code hieronder die ik gebruik.
HTML Code:
type
PFixedTriVertex = ^TFixedTriVertex;
TFixedTriVertex = packed record
X,Y : DWORD;
Red, Green, Blue, Alpha : word;
end;
var Vertex: array[0..1] of TFixedTriVertex;
GradientRect: TGradientRect;
Kleur1,Kleur2 : TColor;
c : longint;
r,g,b : byte;
begin
......
with Image18 do
begin
c := ColorToRGB(Kleur1);
r := Byte(c);
g := Byte(c shr 8);
b := Byte(c shr 16);
Vertex[0].X := 0;
Vertex[0].Y := 0;
Vertex[0].Red := r;
Vertex[0].Green := g;
Vertex[0].Blue := b;
Vertex[0].Alpha := 0;
c := ColorToRGB(Kleur2);
r := Byte(c);
g := Byte(c shr 8);
b := Byte(c shr 16);
Vertex[1].X := Width;
Vertex[1].Y := Height;
Vertex[1].Red := r;
Vertex[1].Green := g;
Vertex[1].Blue := b;
Vertex[1].Alpha := 0;
GradientRect.UpperLeft := 1;
GradientRect.LowerRight := 0;
//GradientFillFixed(Canvas.Handle, @Vertex, 2, @GradientRect, 1, GRADIENT_FILL_RECT_H);
GradientFillFixed(Canvas.Handle, @Vertex, 2, @GradientRect, 1, GRADIENT_FILL_RECT_V);
end;
Bookmarks