procedure Form1.VirtualStringTree1AfterItemErase (
Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
ItemRect: TRect);
var BMP : TBitmap;
lBlendParams: TBlendFunction;
begin
// Parameter für Alphablending zusammstellen
with lBlendParams
do
begin
BlendOp := AC_SRC_OVER;
BlendFlags := 0;
SourceConstantAlpha := 32;
// Intensität
AlphaFormat := 0;
end;
BMP := TBitmap.Create;
try
// Farbe für Zeile wählen
with BMP.Canvas.Brush
do
case Node.
Index mod 3
of
0 : Color :=
RGB(255, 0, 0);
1 : Color :=
RGB(0, 255, 0);
2 : Color :=
RGB(0, 0, 255);
end;
with ItemRect
do
begin
// Bitmap-Größe einstellen, Bitmap einfärben
BMP.Width := Right - Left;
BMP.Height := Bottom - Top;
BMP.Canvas.FillRect (Rect(0, 0, Width, Height));
// Alphablending durchführen
Windows.AlphaBlend(TargetCanvas.Handle, Left, Top, Right - Left, Bottom - Top,
BMP.Canvas.Handle, 0, 0, BMP.Width, BMP.Height, lBlendParams);
end;
finally
BMP.Free;
end;
end;