procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=0 to treeview1.Items.Count-1 do begin listbox1.Items.Add(treeview1.Items.Item[i].Text+':'+inttostr(treeview1.Items.Item[i].AbsoluteIndex)); end; end;这样你就什么都明白了
哦,你改题目了,不好意思 那就接着看吧 function TFAgent.getsubnodetext(tree:ttreeview):string; var CurItem: TTreeNode; str:string; //tstringlist; level:integer; begin str:=''; //tstringlist.Create; CurItem:=Tree.Selected; level:=-2; if curitem<>nil then begin level:=curitem.Level; str:=str+''''+curitem.Text+''''; end; if curitem.Count<>0 then begin curitem:=curitem.GetNext; while ((curitem.Index<>treeview1.Items.Count) and (curitem.Level<>level))do begin str:=str+','''+curitem.Text+''''; //str.Add(curitem.Text) curitem:= curitem.GetNext; if curitem=nil then break; end; end; getsubnodetext:=str; end;这里根据你自己的需要改一下,我只是把我的原封不动的给你了
请问这‘TreeNodes’是怎么定义的?呵呵,谢谢
CurNode : TTreeNode;
begin
CurNoe := CurNode.GetNextSibling;
...
end;
问题是:如何一个一个的提取:‘AbsoluteIndex’为2~8的节点(里面包括多层子节点)???顺便问一下,有什么好方法能得到被选中的节点的所有子节点?个数也行。分不够,再加,呵呵谢谢大家。
1.在NODE的DATA里保存数字信息
2.遍历当前层,从NODE的DATA里得到数字。
3.对2-8的NODE进递归遍历
var
i:integer;
begin
for i:=0 to treeview1.Items.Count-1 do
begin
listbox1.Items.Add(treeview1.Items.Item[i].Text+':'+inttostr(treeview1.Items.Item[i].AbsoluteIndex));
end;
end;这样你就什么都明白了
那就接着看吧
function TFAgent.getsubnodetext(tree:ttreeview):string;
var
CurItem: TTreeNode;
str:string; //tstringlist;
level:integer;
begin
str:=''; //tstringlist.Create;
CurItem:=Tree.Selected;
level:=-2;
if curitem<>nil then
begin
level:=curitem.Level;
str:=str+''''+curitem.Text+'''';
end;
if curitem.Count<>0 then
begin
curitem:=curitem.GetNext;
while ((curitem.Index<>treeview1.Items.Count) and (curitem.Level<>level))do
begin
str:=str+','''+curitem.Text+''''; //str.Add(curitem.Text)
curitem:= curitem.GetNext;
if curitem=nil then
break;
end;
end;
getsubnodetext:=str;
end;这里根据你自己的需要改一下,我只是把我的原封不动的给你了