起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 164|回复: 9

[搞定]DataGrid分组标题颜色控制问题**

[复制链接]
发表于 2007-10-16 14:07:33 | 显示全部楼层 |阅读模式
分组以后标题如下图所示(1、2、3)。现在有个按钮Butten_a,现在想在点击按钮是控制1、2、3标题的颜色,比如我要以红色显示!怎么实现????

setcolor.png

14.81 KB, 下载次数: 126

回复

使用道具 举报

发表于 2007-10-16 14:33:12 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-17 10:21:53 | 显示全部楼层
我想实现自己控制颜色变化问题,如果写在楼主说的事件里,如果条件一边它就自己便颜色了,不能在最后统一变颜色!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-17 10:35:51 | 显示全部楼层
不知说明白没有,也就是图上表的1、2、3都满足了变颜色条件。要求在点击了按钮以后上面的三个标题同时变成红色其他还是原色。不是1标题先满足条件就先变色而是我要在最好统一控制满足我条件的标题统一变色!!
回复 支持 反对

使用道具 举报

发表于 2007-10-17 10:59:33 | 显示全部楼层
不能在最后统一变颜色!!
啥意思?没有太了解,请明示一下,谢谢
回复 支持 反对

使用道具 举报

发表于 2007-10-17 11:00:46 | 显示全部楼层
哦,4楼好像没有好的方法,
回复 支持 反对

使用道具 举报

发表于 2007-10-17 11:08:50 | 显示全部楼层
提供一个思路。
设置一个变量:buttonclicked: boolean;
在窗体创建时,buttonclicked:=false;
在按钮点击中将buttonclicked置为true;
在绘制事件处理中判断,if buttonclicked = false then exit;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-17 16:14:44 | 显示全部楼层
procedure TZXDT.DataGridCustomDrawCell(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);
var
  i,j:integer;
begin
  if b_flag=false then  exit; //不交卷,则返回
  if ANode.HasChildren and not ANode.Selected then
  begin
    //按照答题的对错控制标题的颜色
    //外面的循环存储答题的结果和题目信息;里面的循环和当前DataGrid的标题进行对比,如果相同并且答错就置红!

    for j:=0 to  DataGrid.ColumnCount - 1 do
    begin
       for i:=0 to ts_title.Count - 1 do
       begin
         jsdialogs.ShowMsg(SysUtils.trim(ANode.Strings[j]),ts_title);
         jsdialogs.ShowMsg(ts_title,ts_ruslt);
         if SysUtils.trim(ANode.Strings[j]) =ts_title then
         begin
           //判断设置什么颜色
           if ts_ruslt='0' then
              AColor :=$00000FF      //设置红色
           else                      //设置默认色
              AColor :=-2147483633;
           //------------------------------------------------------
           break;//如果有相同的就返回,看下一个
         end;
       end;
    end;
  end;
  b_flag:=false; //标志设置为假,即只有在点击交卷以后才再变颜色
end;
//帮我看看上面的代码对不呀,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-17 16:18:10 | 显示全部楼层
为什么 SysUtils.trim(ANode.Strings[j])这句话总是一个值呀!!不管j为几他的值都一样。
我在这个事件里循环取一楼图中每个标题值是这么取吗?应该不是吧!怎么取呀?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-17 16:31:58 | 显示全部楼层
结帖吧,现在已经搞定!!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-28 20:26 , Processed in 0.045625 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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