您的位置:程序门 -> delphi -> 数据库相关



菜鸟关于treeview使用上的几个问题 


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


菜鸟关于treeview使用上的几个问题 [无满意答案结贴,结贴人:lkjin]
发表于:2007-08-18 08:49:10 楼主
1,怎样改变选中节点的字体颜色?
2,怎样使被选中的父节点的子节点也全部被选中。
3,我用下面的方法来实现节点被选中,
      1.抓图,将checkbox选中和不选中两种状态抓图,保存
      2.添加一个ttreeview和一个timagelist
      3.在imagelist种添加刚才抓图的两幅图像
      4.在ttreeview中建立你需要的树节点
      5.将ttreeview的images属性设置为你的timagelist,比如imagelist1
      6.在ttreeview的onmousedown方法中写
          treeview1.selected.imageindex   :=   (treeview1.selected.imageindex   +   1)   mod   2;
          treeview1.selected.selectedindex   :=   treeview1.selected.imageindex;
      7.其中selected表示被选中的节点
            selectedindex表示被选中时显示的图片
              imageindex表示这个节点的图片
第一次单击第一个节点时,节点能被选中,但单击第2个节点3次时才能选中,这是为什么?
发表于:2007-09-06 10:30:521楼 得分:0
网上文章多的是
发表于:2007-09-06 15:05:552楼 得分:0
1.
给你参考一下,定义一个记录,用来存放树节点的信息.再定义一个指针指向记录.最后定义一个指针数组,在加载节点时,将信息写到数组中,最后在树的treeview1customdrawitem   中写事件将符合你要求的节点着色.
    tcoid=record                                    
        coid:string;
        isopen:boolean;
        companytypeid:integer;
        areaid:variant;
        nnodedata:ttreenode;
    end;
    ptcoid=^tcoid;                                  

var  

        pcoid:array   [0..10000]       of   ptcoid;    


procedure   tcompanyopenb.treeview1customdrawitem(sender:   tcustomtreeview;
    node:   ttreenode;   state:   tcustomdrawstate;   var   defaultdraw:   boolean);
begin
    if   node.level=0   then
          exit;
    if   ptcoid(node.data).isopen=false   then       //强制转换
        treeview1.canvas.font.color:=clred;
end;              
至于第二个,还没做过,嘿嘿


快速检索

最新资讯
热门点击