一个简单的小问题请大家帮忙!
详见:
http://bbs.2ccc.com/topic.asp?topicid=189553

解决方案 »

  1.   

    to: 回复人: thisisxutao(Probational 1.0) ( ) 信誉:100  2005-09-12 11:25:00  得分: 0  
    TreeView做不出那样的效果
      

  2.   

    看那个图,好像自己用 owerDraw , 自己画就可了
      

  3.   

    不知道这个控件有什么功能?仅图片显示TreeView可以实现的
      

  4.   

    参考如下代码object TreeView1: TTreeView
      Left = 264
      Top = 56
      Width = 289
      Height = 273
      AutoExpand = True
      Images = ImageList1
      Indent = 19
      ParentColor = True
      RowSelect = True
      ShowButtons = False
      ShowLines = False
      TabOrder = 0
      OnCustomDrawItem = TreeView1CustomDrawItem
      Items.Data = {
        040000001F0000000000000000000000FFFFFFFFFFFFFFFF0000000000000000
        064D6F6E646179200000000000000000000000FFFFFFFFFFFFFFFF0000000001
        0000000754756573646179270000000100000001000000FFFFFFFFFFFFFFFF00
        000000030000000E7777772E6F70656E676C2E6F72672A000000020000000200
        0000FFFFFFFFFFFFFFFF00000000000000001157656C636F6D6520746F204F70
        656E474C350000000200000002000000FFFFFFFFFFFFFFFF0000000000000000
        1C666F726765742044697265637433442C207573652072656164203344350000
        000200000002000000FFFFFFFFFFFFFFFF00000000000000001C686967682071
        75616C6974792067616D657320616E6E6F756E63656422000000000000000000
        0000FFFFFFFFFFFFFFFF0000000000000000095765646E657364617921000000
        0000000000000000FFFFFFFFFFFFFFFF00000000000000000854687572736461
        79}
    endprocedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
      Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
    var
      vParentNode: TTreeNode;
      vTreeNode: TTreeNode;
    begin
      if cdsSelected in State then Exit;
      vParentNode := nil;
      vTreeNode := TTreeView(Sender).Selected;
      while Assigned(vTreeNode) do
      begin
        if vTreeNode.Level = 0 then
        begin
          vParentNode := vTreeNode;
          Break;
        end;
        vTreeNode := vTreeNode.Parent
      end;  while Assigned(Node.Parent) and (Node.Parent <> vParentNode) do
        Node := Node.Parent;
      if Node.Parent = vParentNode then
        Sender.Canvas.Brush.Color := clWindow;
    end;