起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 553|回复: 18

【结贴】DataTreeList字体颜色设置

[复制链接]
发表于 2009-11-4 17:10:27 | 显示全部楼层 |阅读模式
我在DataTreeList的CustomDrawCell事件里面写了下面这样一段代码,单双行颜色设置对了,但是另外一个根据某字段的值来设置字体的颜色这里实现不了,实际运行的时候是选中某一行,然后他根据选中行的某字段值,整个DataTreeList的字体颜色都变了,到底是怎么回事。
procedure TMBSC.DataTreeList1CustomDrawCell(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 not(ASelected or AFocused) then
  begin
    if DataSetJYXM.FieldByName('TGRK').AsBoolean = false then
      AFont.Color := $0000FF;
    if ANode.HasChildren then
      begin
        AColor := $FFFFFF;   //设置奇数行颜色
        Exit;
      end;
    if (ANode.Index mod 2) = 1 then //设置偶数行颜色
      begin
        AColor := $FFECDD;
      end;
  end;
end;
回复

使用道具 举报

发表于 2009-11-4 17:15:40 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-4 17:26:40 | 显示全部楼层
现在可以实现了,但是由发现一个问题
  原来在数据集的SQL语句中设置了排序方式,但是运行的时候却不是按照这个排序来进行的,如果我把行为选项中的etoAutoSort去掉,就不能通过点击列头来排序,这个怎么解决
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-4 17:31:42 | 显示全部楼层
还有,DataTreeList默认行选,我想把行选去掉,但是找不到行选
etoEditing勾上了,但是还是不能编辑。
回复 支持 反对

使用道具 举报

发表于 2009-11-5 08:40:20 | 显示全部楼层
3楼,数据集的order属性上设置排序试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-5 08:48:18 | 显示全部楼层
数据集上设置order属性也不行
回复 支持 反对

使用道具 举报

发表于 2009-11-5 08:50:41 | 显示全部楼层
那你贴图出来看看,目前的效果图以及想要的效果图。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-5 08:54:27 | 显示全部楼层
目前的效果和排序设置(显示序号的数据类型是整数,表现形式是数字)

11.jpg

47.81 KB, 下载次数: 254

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-5 08:55:45 | 显示全部楼层
这是想要的效果

22.jpg

12.03 KB, 下载次数: 246

回复 支持 反对

使用道具 举报

发表于 2009-11-5 09:08:36 | 显示全部楼层
那你传个例子吧。
按你描述的 不应该是这种效果的。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-14 23:13 , Processed in 0.041081 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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