Delphi TListview自绘实现每行或每列或每个单元格根据内容显示不同颜色

该代码段展示了如何在Delphi中自定义绘制TCustomListView的子项,根据SubItem的索引改变字体颜色。如果SubItem在5到15之间且内容为有,则颜色设为蓝色,否则为黑色。当SubItem等于13时,颜色特别设定为红色。

程序运行效果如下图:

 效果实现源码如下:

procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  Rect: TRect;
  Button: TSpeedButton;
begin
//设置整列颜色
//  if SubItem in [5..15] then
//    Sender.Canvas.Font.Color := clGreen
//  else
//    Sender.Canvas.Font.Color := clBlack;


  if SubItem in [5..15] then
  begin
    if Item.SubItems[SubItem - 1] = '有' then
      Sender.Canvas.Font.Color :=clBlue  //clgreen//cllime
    else
      Sender.Canvas.Font.Color := clBlack;
  end;

  if SubItem=13 then
  begin
    Sender.Canvas.Font.Color := clRed;
  end;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值