我有一个部门和部门人员两组数据
想都在同一棵TREEVIEW上表示例 头节点是部门然后子节点是该部门的人员
然后我想在在部门人员中出现右键而部门弹出不同的右键。。怎么做???读数据的时候我该怎么区分是部门还是人员的标识呢。。还有图标问题。。我想在部门的图标和人员的图标不同该怎么做?
想都在同一棵TREEVIEW上表示例 头节点是部门然后子节点是该部门的人员
然后我想在在部门人员中出现右键而部门弹出不同的右键。。怎么做???读数据的时候我该怎么区分是部门还是人员的标识呢。。还有图标问题。。我想在部门的图标和人员的图标不同该怎么做?
-----------------------------------------------------------------------
让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 {判断是什么类型的节点}**************
来判断
最好在创建的时候根据节点的类型设置不同的Tag值,以后直接查看Tag值就可以。技术上可以定义一个枚举类型,转换为Ingeger后放进Tag。读时再转换回枚举进行判断,程序比较清晰;
2.不同的图标
根据节点类型设置不同的ImageIndex即可。当然ImageIndex用法你可能要看一下帮助,因为是与其他一些属性联用的;
3.弹出不同的菜单
如楼上的兄弟所说,准备2个不同的弹出菜单,接管TreeView的OnMouseDown事件,根据节点类型弹出不同的菜单;
或者准备1个大的弹出菜单,链接到TreeView,接管菜单的OnPopup事件,根据节点类型设置菜单项的Visible属性。