五、事件触发:
当从一个节点跳到另一个节点,会触发TTreeView.OnChange事件。该事件中,将传递node,即当前被选中的节点。
当修改一个节点的text时,会触发TTreeView.onEdit事件。
六、将节点和节点所对应的数据联系起来
对于每个TTreeNode,有个Data属性,可以存放一个指针。我们可以利用这个域来存放与节点对应的自己的数据。
1.我们先定义一个数据结构,作为记录我们要记录的数据。如:
type PMyData=^TMyData; TMyData=Record sFName:string; sLName:String; nIndex:integer; end; |
2.然后,创建数时,将节点和节点数据联系起来:
procedureTForm1.Button1Click(Sender:TObject); var myshuju:PMyData cur_node:TTreeNode; begin New(MyRecPtr);//记住,一定要先分配内存。有几个节点,就要分配几次内存。 myshuju^.FName:=Edit1.Text; Myshuju^.LName:=Edit2.Text; TreeViewIndex:=StrToInt(Edit3.Text); withTreeView1do begin cur_node:=items.AddFirst(nil,'first'); cur_node.data:=myshuju; end; end; |
3.当我们选中一个节点时,就可以使用我们的数据了。
procedureTForm1.TreeView1Change(Sender:TObject;Node:TTreeNode); begin ifnode.data<>nilthen self.label1.caption:=pmyData(node.data)^.Fname+pmyData(node.data)^.Lname end; |
(举报)