TListView AdvancedCustomDrawItem在鼠标悬停时绘制黑色矩形

时间:2018-07-17 19:54:43

标签: delphi tlistview ondrawitem

使用Delphi Berlin,我有一个带有单个列的TListView和AdvancedCustomDrawItem中的以下代码:

procedure TDetailedStatisticForm.lv_ProductsAdvancedCustomDrawItem(
  Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
  Stage: TCustomDrawStage; var DefaultDraw: Boolean);
var
  r : TRect;
begin
  if Stage = TCustomDrawStage.cdPrePaint then
  begin
    Sender.Canvas.Brush.Color := FStatistics.Products[Item.Index].Color;

    r := Item.DisplayRect(drLabel);
    r.Right := Item.DisplayRect(drBounds).Right;
    Sender.Canvas.FillRect(r);
    Sender.Canvas.Font.Color := 
      FStatistics.Products[Item.Index].FontColor;
  end;

  DefaultDraw := true;
end;

我要实现的是,这些项目具有彩色背景,而其余的使用默认图形。那行得通,但是一旦我将鼠标移到某个项目上,它就会在该项目的标题所在的位置绘制一个黑条。 HotTrack已关闭。

如何避免黑条?

0 个答案:

没有答案