CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何设置TStringGrid某行的颜色

楼主fshrq(我要有五粒星)2005-11-21 17:24:43 在 Delphi / VCL组件开发及应用 提问

例如当StringGrid1.Cells[1,1]='10000'时StringGrid1的第二行正行底色显示红色  
   
  请大家帮帮忙 问题点数:50、回复次数:4Top

1 楼zhuangbx220(星)回复于 2005-11-21 19:52:55 得分 30

procedure   TForm1.StringGrid1DrawCell(Sender:   TObject;   ACol,   ARow:   Integer;    
    Rect:   TRect;   State:   TGridDrawState);    
  var    
    s:   String;    
    R:   TRect;    
  begin    
    if   ARow   =   3     then    
    begin    
        case   ACol   of    
            1:   TStringGrid(Sender).Canvas.Brush.Color   :=   clGreen;    
            2:   TStringGrid(Sender).Canvas.Brush.Color   :=   clRed;    
            3:   TStringGrid(Sender).Canvas.Brush.Color   :=   clYellow;    
            4:   TStringGrid(Sender).Canvas.Brush.Color   :=   clBlue;    
        end;    
        S   :=   TStringGrid(Sender).Cells[ACol,   ARow];    
        R   :=   TStringGrid(Sender).CellRect(ACol,   ARow);    
        TStringGrid(Sender).Canvas.FillRect(R);    
        TStringGrid(Sender).Canvas.TextOut(R.Left,   R.Top,   S);    
    end;    
  end;Top

2 楼yuehaiyang()回复于 2005-11-21 22:40:06 得分 0

学习Top

3 楼oushengfen(逸帆)回复于 2005-11-22 10:12:16 得分 0

谢谢,我正好需要此方法,但是本人还有一个就是需要在网格中进行编辑,但只能输入十六制的数字字符。Top

4 楼zxf_feng(阿日)回复于 2005-11-23 13:56:51 得分 20

procedure   SetGridColor(ARow,ACol:   Integer;ColorJ,ColorO:   TColor;   Rect:   TRect;StrGrid:   TStringGrid);  
  var  
      strValue:     String;  
  begin  
      with   StrGrid   do  
      begin  
        //画背景  
        if     (ARow   >   0)   and   (ACol   >   0)     then  
        begin  
            if   (ARow   mod   2   =   0)   then  
                Canvas.Brush.Color     :=   ColorO  
            else  
                Canvas.Brush.Color     :=   ColorJ;  
            if   (ARow=StrGrid.Row)   then   Canvas.Brush.Color   :=   clMoneyGreen;//clMenuHighlight;  
            Canvas.FillRect(Rect);  
        end;  
        //计算显示在矩形框中的左上角位置  
        strValue     :=     Cells[ACol,ARow];  
        Canvas.Font     :=     Font;  
        //在矩形框中写值  
        Canvas.TextRect(Rect,Rect.Left+5,Rect.Top+(Rect.Bottom-Rect.Top-Canvas.TextHeight(strValue))   div   2,strValue);  
      end;  
  end;  
  Top

相关问题

  • JTable设置行的颜色?
  • 设置颜色
  • 如何设置datagrid行背景颜色?
  • 如何设置LISTVIEW中列表中设置每行的颜色!
  • 急!颜色设置
  • 如何设置datagrid中某一行的背景颜色和字体颜色?
  • 如何在vb中设置datagrid,让他隔行显示颜色,如何设置某一行颜色
  • 如何将ListCtrl的某一行的颜色设置成Highlight,或...
  • 如何设置数据窗口 (grid) 的指定行的颜色?
  • TRichEdit中如何设置各行的颜色和背景?

关键词

  • top
  • tstringgrid
  • arow
  • canvas
  • acol
  • brush
  • rect
  • strgrid
  • strvalue
  • sender

得分解答快速导航

  • 帖主:fshrq
  • zhuangbx220
  • zxf_feng

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo