Wenn du ganze Zeilen einfärben möchtest, kannst du das in der Behandlungsroutine für
OnBeforeItemErase tun:
Delphi-Quellcode:
procedure TForm1.VirtualStringTree1BeforeItemErase(
Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
ItemRect: TRect; var ItemColor: TColor;
var EraseAction: TItemEraseAction);
begin
if Odd(Node.Index) then
ItemColor := clLime
else
ItemColor := clRed;
EraseAction := eaColor;
end;
Hast du ein mehrspaltiges TreeView, in dem du nur eine Spalte einfärben möchtest, so nimmst du die Behandlungsroutine für
OnBeforeCellPaint:
Delphi-Quellcode:
procedure TForm1.VirtualStringTree1BeforeCellPaint(
Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
Column: TColumnIndex; CellRect: TRect);
begin
if (Column = 0)
begin
TargetCanvas.Brush.Color := clYellow;
TargetCanvas.FillRect(CellRect);
end;
end;
Gruß Hawkeye