{在这个记录中,你还可以保存一些其它自己感兴趣的数据,比如部门经理等。。。} end; 接着,申明一个指针指向那个结构: PUnitNodeInfo : ^TUnitNodeInfo; 接着看一看建树的处理: procedure CreateUnitTree; var TreeNode : TTreeNode; NodeInof : PUnitNodeInfo; begin ... {在此的打开数据表、提取数据很多文档中有论及,我就不再重复} TreeNoe := TreeView.Items.AddChild(...); TreeNode.ImageIndex := ;{设置节点图标索引,当然也可以不在此设置而在TreeView的事件中设置} New(NodeInof);{为节点指针分配内存} with NodeInfo^ do begin UnitCode := ;{对节点数据属值} ...... end;{with...} TreeNode.Data := NodeInof;
.....{上面代码放在复合语句中,增加树中每一个节点} end;
最后,在TreeView的OnChange事件中,可以这样取得节点数据: var UnitCode : string; begin UnitCode :- TUnitNodeInfo(TreeView.Items[索引].Data^).UnitCode; ......... end; 最后,不用树的时候,记得释放树节点指针: var I : integer; begin for I := 0 to TreeView.Items.Count - 1 do begin Dispose(TreeView.Items[I].Data); TreeView.Items[I].Data := nil; end; end; ListView的相关用法与此类似,就不再讲了。写了这些,也不知道能不能让各位看明白,有不对的地方,请多指教。