delphi中关于dbgrideh的DrawColumnCell事件,窗体重画,让每个单元格以及字体显示不同的颜色

这是我写的一个函数,希望与大家分享。

//Delphi中关于dbgrideh的DrawColumnCell事件,窗体重画,

// 让每个单元格以及字体显示不同的颜色
 //columns.items[8]为DBgrideh的第八列; canvas.TextWidth取字符串的宽度;显示垂直居中
procedure Tfrmftp.DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
begin
   with Sender as TDBGridEh do
   begin
      if Column.FieldName='IsUpload' then
      begin
        if (DataSource.DataSet.FieldByName('IsUpload').AsString='上传失败') or
            (DataSource.DataSet.FieldByName('IsUpload').AsString='文件已存在') then
        begin
          //canvas.brush.color :=clwhite;//设置单元格的背景色
          Canvas.Font.Color :=clRed;    //设置单元格的字体颜色
          Canvas.Font.Style :=[fsBold];// 设置单元格为粗体
          Canvas.FillRect(Rect);
          //Canvas.TextRect(Rect,Rect.Left,Rect.Top,Column.Field.AsString);
          {垂直居中显示}
          Canvas.TextRect(Rect,Rect.Left+((columns.Items[8].Width-(Canvas.TextWidth(Column.Field.AsString))) div 2),(Rect.bottom-rect.Top-abs(Columns.Items[8].Font.Height)) div 2 +rect.Top,Column.Field.AsString);
        end;
        if (DataSource.DataSet.FieldByName('IsUpload').AsString='√') or
            (DataSource.DataSet.FieldByName('IsUpload').AsString='覆盖成功') then
        begin
          Canvas.Font.Color :=clGreen;
          Canvas.Font.Style :=[fsBold];
          Canvas.FillRect(Rect);
         // Canvas.TextRect(Rect,Rect.Left,Rect.Top,Column.Field.AsString);
         {垂直居中显示}
         Canvas.TextRect(Rect,Rect.Left+((columns.Items[8].Width-(Canvas.TextWidth(Column.Field.AsString))) div 2),(Rect.bottom-rect.Top-abs(Columns.Items[8].Font.Height)) div 2 +rect.Top,Column.Field.AsString);
        end;
 
      end;

   end;

end;

如果转载请说明文字出处  Lenovo455

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值