首页 > 其他 > 详细

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

时间:2015-06-18 19:23:28      阅读:166      评论:0      收藏:0      [点我收藏+]

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;

 

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

原文:http://www.cnblogs.com/zhenfei/p/4586544.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!