我使用TTreeView完成了一棵树,现在我需要在每个节点前面都有一个CheckBox允许我复选,该怎么做。
请注意这两点:
1。我已经看了帮助,其中说到CheckBox只支持ListView而不支持TreeView。我觉得TTreeView也应该可以有这种功能,是否可以使用别的类似TTreeView的控件。
2。我知道怎么使TTreeView能够MultiSelect,我只想有CheckBox所以就不用教我怎么复选了。

解决方案 »

  1.   

    你可自己画,把checkbox的两种图揭下来,一个是选中的一个是为选中的,把他们设为图标,再加上代码,点一下换一个图标
      

  2.   

    TreeView 不支持,就不用它了啦,
    人家都告诉你不行,你又何必要这样做?
    天生TreeView时就有这个缺陷,你就不要苦求了。
      

  3.   

    自己画吧,很简单的,我看很多这类的第三方控件都是这么做的,以下是代码,供你参考procedure TformTBDB.TreeView_ywztMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var 
      HitTests: THitTests;
    begin
      HitTests := TreeView_ywzt.GetHitTestInfoAt(X, Y);
      if htOnStateIcon in HitTests then
      begin
        if TreeView_ywzt.Selected.StateIndex = 2 then
          TreeView_ywzt.Selected.StateIndex := 1
        else
          TreeView_ywzt.Selected.StateIndex := 2;
        //if Assigned(...) then ... // 触发自定义事件
      end;
    end;
      

  4.   

    楼上的方法不失为一种好方法
    你也可以用1stclass的fctreeview控件。
    ----------------------------------------------
                       riff ur life
      

  5.   

    1。就是用图标的形式。
    2。有一个扩展控件1stclass2000ProVcl5有这个功能。
      

  6.   

    对,就是根据StateIndex的值来实现画选中和未选中的状态
      

  7.   

    dll调用出错怎么回事啊????
    其中有个错误和zfzhou的错误一样
    大部分都是内存问题。怎么解决各位师兄给点回答
      

  8.   

    http://www.csdn.net/expert/topic/1023/1023408.xml?temp=.9257929
      

  9.   

    TO:D_Q(A.Dai)(阿呆) 
    我使用的是Delphi6.0,你说的那个控件安装不上,说是需要什么vcl40.bpl。