ImageList里面有两个小图标,一个对号,一个错号,如何才能实现复选对号的效果?类似杀毒软件里面可以多选盘符一样(可以同时选中C,D盘进行杀毒)

解决方案 »

  1.   

    http://www.2ccc.com/article.asp?articleid=918
    一个控件
      

  2.   

    procedure tform1.Treeview1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
      MyHitTest : THitTests;
      TreeNode  : TTreeNode;
    begin
      MyHitTest := Treeview1.GetHitTestInfoAt(X,Y);
      if htOnIcon in MyHitTest then
      begin
        TreeNode := Treeview1.Selected;
        if TreeNode.ImageIndex = 0 then
          SelectNode(TreeNode, 1)
        else
          SelectNode(TreeNode, 0);    
        Treeview1.Refresh;
      end;
    end;
      

  3.   

    接上面
    procedure tform1.SelectNode(TreeNode: TTreeNode; IsCheck: Integer);
    var
      i: Integer;
    begin
      if TreeNode = nil then Exit;
      TreeNode.ImageIndex := IsCheck;
      TreeNode.SelectedIndex := IsCheck;
      for i := 0 to TreeNode.Count - 1 do
      begin
        SelectNode(TreeNode.Item[i], IsCheck);
      end;
    end;