我有一个部门和部门人员两组数据
想都在同一棵TREEVIEW上表示例  头节点是部门然后子节点是该部门的人员
然后我想在在部门人员中出现右键而部门弹出不同的右键。。怎么做???读数据的时候我该怎么区分是部门还是人员的标识呢。。还有图标问题。。我想在部门的图标和人员的图标不同该怎么做?

解决方案 »

  1.   

    取得各个Child 的TTreeNode指针,每个都去指定ImageIndex
      

  2.   

    我想在在部门人员中出现右键而部门弹出不同的右键。。怎么做???
    -----------------------------------------------------------------------
    让TreeView响应onMouseDown事件,
    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      var MyTreeNode:TTreeNode;
    begin
        MyTreeNode:=TreeView1.Selected;
        if MyTreeNode.Parent.Index = 0 then   {判断是什么类型的节点}**************
        popupmenu1.Popup(x,y);
        else
        popupmenu1.Popup(x,y);
    end;
    ------------------------------------------
    读数据的时候我该怎么区分是部门还是人员的标识呢。。还有图标问题。。我想在部门的图标和人员的图标不同该怎么做?
    -------------------------------------------
    就用    if MyTreeNode.Parent.Index = 0 then   {判断是什么类型的节点}**************
    来判断
      

  3.   

    1.如何判断不同的节点
        最好在创建的时候根据节点的类型设置不同的Tag值,以后直接查看Tag值就可以。技术上可以定义一个枚举类型,转换为Ingeger后放进Tag。读时再转换回枚举进行判断,程序比较清晰;
    2.不同的图标
        根据节点类型设置不同的ImageIndex即可。当然ImageIndex用法你可能要看一下帮助,因为是与其他一些属性联用的;
    3.弹出不同的菜单
        如楼上的兄弟所说,准备2个不同的弹出菜单,接管TreeView的OnMouseDown事件,根据节点类型弹出不同的菜单;
        或者准备1个大的弹出菜单,链接到TreeView,接管菜单的OnPopup事件,根据节点类型设置菜单项的Visible属性。