起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 331|回复: 13

【结】DataGrid 选中行的颜色改变**

[复制链接]
发表于 2008-10-14 15:55:53 | 显示全部楼层 |阅读模式
我现在已经设置选中行,而且改变了背景颜色,现在选中一行时,颜色不会改变了。我想选中的行颜色改变如何实现?
如图

123.jpg

71.41 KB, 下载次数: 205

回复

使用道具 举报

发表于 2008-10-14 16:41:24 | 显示全部楼层
老兄,能把你这个颜色编号共享一下吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-14 16:50:28 | 显示全部楼层
回2楼
procedure TMAINFORM.DataGrid1CustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TTreeListNode; AColumn: TTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: string; var AColor: Integer; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
begin
  if  DataGrid1.DataSource.DataSet.RecNo  mod  2=1  then//单行
  begin
    AColor := $bcf2fc;//背景色  //颜色自己定
    DataGrid1.Canvas.Font.Color:=$000000;//字体色
  end
  else
  begin//双行  Brush
    AColor  := $fce5bc;
    DataGrid1.Canvas.Font.Color:=$000000;
  end;
end;


随便提一下。2楼朋友你让我好激动。我以为我帖子 有办法解决了呢。继续等待
回复 支持 反对

使用道具 举报

发表于 2008-10-14 17:01:36 | 显示全部楼层
对不起,我也在等这个问题,谢谢了
回复 支持 反对

使用道具 举报

发表于 2008-10-14 17:57:59 | 显示全部楼层
楼主,你先取消3楼的代码看看设置的行选是否正常?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-15 08:20:29 | 显示全部楼层
回5楼
取消3楼代码选行是正常的,而且变颜色。
效果如图

123.jpg

38.25 KB, 下载次数: 187

回复 支持 反对

使用道具 举报

发表于 2008-10-15 09:06:51 | 显示全部楼层
直接在DataGrid上设置选中行颜色,是不能跟3楼代码同时使用,如果还要改变选中行的颜色,那么需要在3楼的代码再加上 判断当前行是否选中,目前楼主仅仅判断当前行的奇偶行,
代码参考 http://bbs.justep.com/forum.php?mod=viewthread&tid=7375
其中 if not (ASelected or AFocused) then  这个就是判断当前行是否选中
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-15 09:09:47 | 显示全部楼层
已解决,可以结贴了。解决代码如下:
if not (ASelected or AFocused) then // 如果是当前行,则默认系统的反白显示
begin  
    if (ANode.Index mod 2) = 1 then
    begin
      AColor := $bcf2fc;  // 奇数行颜色
  end;
    if (ANode.Index mod 2) = 0 then
    begin
      AColor := $fce5bc;  // 偶数行颜色
  end;
  end;
回复 支持 反对

使用道具 举报

发表于 2008-10-15 09:10:15 | 显示全部楼层
试试,再增加一个判断(ASelected, AFocused, ANewItemRow: Boolean;)
ASelected为true
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-15 09:22:56 | 显示全部楼层
不知道为什么,判断 奇偶行的时候,要用
(ANode.Index mod 2) = 1
而不能用
DataGrid1.DataSource.DataSet.RecNo  mod  2=1  
迷茫,用了 DataGrid1.DataSource.DataSet.RecNo  mod  2=1   他就不变色了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-24 19:49 , Processed in 0.043294 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表