Delphi TreeView 选择父节点,选择所有子节点

在delphi中,通过数据库形成了一个动态的treeview对结构,当选择父节点时,子节点全部选中,当不选择父节点时,子节点全部不被选中,且不可以选择!

第1个回答  推荐于2016-11-01
1、点击节点,首先判断是否可以选择。
通过TreeNode.Parent是否nil,判断是否有父节点,如果有,则父节点是否可选择,如果不可选择,则当前节点,不可选择。
2、在点击节点时,遍历所有子节点。这里采用递归调用。
首先用HasChildren,判断选中节点是否有子节点。
没有,则返回。
有,则GetFirstChild,然后循环使用GetNextChild,所作操作(1)设置所有子节点的Selected属性和父节点相同(2)递归调用当前子节点。本回答被提问者采纳

Delphi TreeView 选择父节点,选择所有子节点
1、点击节点,首先判断是否可以选择。通过TreeNode.Parent是否nil,判断是否有父节点,如果有,则父节点是否可选择,如果不可选择,则当前节点,不可选择。2、在点击节点时,遍历所有子节点。这里采用递归调用。首先用HasChildren,判断选中节点是否有子节点。没有,则返回。有,则GetFirstChild,然后循环使...

DELPHI TreeView,动态添加父节点,子节点
二、针对TTreeNodes,也就是 TreeView.Items,常用的添加节点的操作有:AddFirst添加第一个根节点。由此函数添加的节点总排在前面,除非后来又使用此函数添加了一个节点,则后添加的节点将排在前面。该函数返回新添加的节点。AddChildFirst添加第一个子节点,要求有父节点作为其参数。返回新添加的节点。Ad...

delphi TreeView怎样知道选的是子节点 ,并得到它子节点的TEXT
获取 TreeView 控件当前选中节点是否是子节点,可以通过节点(TTreeNode)的 Parent 属性成员,如果有 Parent ,则说明当前节点是子节点。获取节点的 Text,可以直接访问节点(TTreeNode)的 Text 属性。示例代码如下:procedure TForm1.btn1Click(Sender: TObject);var CurItem: TTreeNode;begin CurIt...

delphi中treeview的节点选择问题
TreeView1需要设置MultiSelect = True;MultiSelStyle设置为[msControlSelect]procedure Tform1.TreeView1Click(Sender: TObject);var TNode,Cnode: TTreeNode;i: Integer;iLoop: Boolean;begin Cnode:= self.TreeView1.Selected;if not Cnode.Expanded then Exit;if Cnode.HasChildren then begin TNode...

delphi treeview选择节点
begin if tv1.Selected.Parent=tv1.Items.Item[0] then\/\/判断选中的节点是2级节点,然后执行 .begin txtUpdateVersion.Text:=Copy(tv1.Selected.Text,5,255);txtUpdateURL.Text:=tv1.Selected.getFirstChild.Text;currentClickIndex:=tv1.Selected.Index;j:=cbbGameName.ItemIndex+1;i:=update...

delphi中treeview的用法
二、增加、删除、修改树节点 单纯在Treeview 上增加、删除、修改节点只需用它本身提供的Treeview.Items. AddChildObject、 Treeview.Selected.Delete、Treeview.Selected.EditText等方法即可,但要相应修改数据库中的数据,必须通过递归调用同一个函数(用于删除一个选项)来遍历所选节点下的所有子节点。下面以删除节点为...

Delphi6中使用Treeview显示及修改数据库中树形结构表
如果是自己用TreeView来创建的话,要用循环分多步操作了。1、查出父结点数据2、循环写入父结点(可以将各结点序号放入SelectedIndex来做临时存储)3、循环当前已写入的父结点,并根据SeletedIndex(父结点序号)来查出属于当前序号的子结点,有数据的话 再循环写入子结点4、按上述方式循环判断下级子结点...

delphi中的treeview控件如何取到选择节点的索引号?
每一个节点下子节点形成这一节点的Items属性,当前节点有一个唯一的Index(TreeNode的Index属性),用于说明子节点在Items中的位置,每一个节点下的子节点是顺序编号的,第一个是0,第二个是1,依次类推。用IndexOf方法获得子节点的顺序,绝对顺序(AbsoluteIndex)则是指从Treeview第一个项开始的顺序值,...

判断选中delphi之中treeview控件节点的语句
begin \/\/如果选中节点的等级(level)为0(根节点等级为0,根节点的子节点等级为1,依次类推)并且其序号(index)为0(同等级下的的节点按从上到下数第一个为0,第二个为1,以此类推)if(treeview1.Selected.Level = 0)and(treeview1.Selected.Index = 0) then begin \/\/这里写点中了第一个...

Delphi新手问题, 输出treeview的全部节点名称
我的是这样的.var node:TTreeNode;result:string;begin result:='';node:=tv1.Selected;result:=node.Text;while node.Parent<>nil do begin node:=node.Parent;result:=node.Text+'\/'+ result;end;ShowMessage(result);end;

相似回答