启用 TStringGrid 的自画功能,并避免重影

FMX 控件的 TStringGrid 下,有时为了让不同行或不同 Cell 的显示颜色、字体等有各种不同的颜色, 必须采用自画, 即在其 OnDrawColumnCell 事件中写自己的控制代码显示。

例如:

    s := sgrdLog.Cells[1,Row];

    if s = 'info' then
      Canvas.Fill.Color := ccbInfo.Color
    else if s = 'error' then
      Canvas.Fill.Color := ccbError.Color
    else if s = 'warn' then
      Canvas.Fill.Color := ccbWarning.Color
    else if s = 'debug' then
      Canvas.Fill.Color := ccbDebug.Color
    else if s = 'trace' then
      Canvas.Fill.Color := ccbTrace.Color
    else if s = 'fatal' then
      Canvas.Fill.Color := ccbFatal.Color
    else
      Canvas.Fill.Color := TAlphaColorRec.Black;

    Canvas.FillText( Bounds, Value.ToString, False, 1, [], TTextAlign.Leading );

但显示效果你会发现有重影, 有个默认的黑色字体在后面,效果很差。 要解决这个问题很简单, 在程序启动后增加一句即可:

  sgrdLog.DefaultDrawing := False;

 

转载于:https://www.cnblogs.com/zhenfei/p/4586544.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值