Colors.HotColor
используется для изменения Font.Color
, а не Brush.Color
.Использование toHotTrack
только изменяет Font.Color
и добавляет fsUnderLine
к Font.Style
, см. Раздел реализации.
if (toHotTrack in FOptions.FPaintOptions) and (Node = FCurrentHotNode) then
begin
if not (tsUseExplorerTheme in FStates) then
begin
Canvas.Font.Style := Canvas.Font.Style + [fsUnderline];
Canvas.Font.Color := FColors.HotColor;
end;
end;
Однако это довольно легко изменить, например, в OnBeforeCellPaint
.Если вы не хотите fsUnderline
, вам нужно удалить toHotTrack
из TreeOptions.PaintOptions
, что в данном случае не требуется.
procedure VSTBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode;
CellRect: TRect; var ContentRect: TRect);
begin
if (CellPaintMode = cpmPaint) and (Node = vstStrom.HotNode) then
begin
TargetCanvas.Brush.Color := clGreen;
TargetCanvas.FillRect(CellRect);
end;
end;