码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-18 19:24:23      阅读:119      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!