---A
|——B
|——C
|——D
|——E
|..........
例如:我选择了“D”,那么我想得到“D”上级节点A,B,C,如何处理?
|——B
|——C
|——D
|——E
|..........
例如:我选择了“D”,那么我想得到“D”上级节点A,B,C,如何处理?
解决方案 »
- 请教各位这段系统加速代码为何没有起作用?
- 关于DBgrid的滚动条
- 如何把字符串中指定的内容去掉?高手进
- 高手们呀,帮一帮我吧,我这辈子都不会忘记你们的。
- 急:为什么delphi6.0的ClientSocket在WIN98下不能访问远程的服务器?
- 怎样获得DBLookUpComboBox的keyField的值?
- pos函数可以用widestring做参数吗?
- 超简单问题
- 超级大难题,清家荡产悬赏26分!sos!
- 就急:在delphi里面把月份减一,不用什么formatdatetime。
- 请大家提供一些比较稳定的SP短信平台信息,我们公司要准备通过别人的平台群发短信,多谢多谢!!!
- 大侠帮忙啊:EAccessViolation错误
Label4.Caption:=copy(tree.Selected.Parent.Text,8,lenp);
其中我是把父接点的值赋值给label4.caption
lenp:integer; //得到选定结点的父结点的字符长度
我把treeview改名为tree了。
知道了么?你可以这样写:
label4.caption:=treeview.Selected.Parent.Text;
procedure Tlogin_peizhi.FormCreate(Sender: TObject);
var
curID,nodeTxt:string;
level1,level2:integer;
mynode:array[0..3] of TTreenode;
begin //初始化变量
Screen.Cursor:=crHourGlass;
tree.Enabled:=True;
tree.Items.Clear;
level1:=0 ;
level2:=0 ;
tree.items.clear;
//设置根节点
mynode[0]:=tree.items.add(Tree.Topitem,'510000-四川省');
// mynode[level].ImageIndex:=1;
//遍历数据表,利用编码字段记录排序规律,依次添加树节点
with adotable1 do
begin
try
if not Active then open;
first;
while not Eof do
begin
level1:=strtoint(copy(FieldByName('行政区编号').AsString,5,2));
level2:=strtoint(copy(FieldByName('行政区编号').AsString,3,4));
curID:=trim(FieldByName('行政区编号').AsString);
nodeTxt:=curID+'-'+trim(FieldByName('行政区').AsString);
if (level1=0) and (level2<>0) then
begin
//增加下一节点时,用添加子节点的方法可轻松实现节点间的层次关系
//注意:这里的父节点是用当前节点的上一级节点mynode[父节点数-1]
mynode[1]:=tree.items.addchild(mynode[0],nodeTxt); end
else if level1>0 then
begin
mynode[2]:=tree.items.addchild(mynode[1],nodeTxt);
end; next;
end;
finally;
close;
End;
// mynode[0].expand(False);
Screen.Cursor:=crDefault;我这个是从数据库里自动往treeview里加数据.而且分了两级
你可以根据这个思路太取得上一级所有的父接点数
then Exit;
vNode:=Treeview1.selected;
while (vNode<>nil)or(vNode.parent<>nil) do
begin
showmessage(vNode.parent.Text)//依次显示上级节点的标题
vNode:=vNode.parent;
end;
var
node: TTreeNode;
i: Integer;
begin
If tv1.Selected = nil Then Exit;
node := tv1.Selected;
for i:= 0 to tv1.Selected.Level do
begin
Showmessage(node.Text);
node := node.Parent
end;
end;
var
node: TTreeNode;
i: Integer;
sTemp: String;
begin
If tv1.Selected = nil Then Exit;
node := tv1.Selected;
sTemp := '';
for i:= 0 to tv1.Selected.Level do
begin
Showmessage(node.Text);
sTemp := sTemp + node.Text;
node := node.Parent
end;
Showmessage(sTemp);
end;