-A1
----a11
----a12
-B1
treeview中的树型结构如上;
现在我想用程序在B1这一节点添加一个子节点 实现后的结构如下:
-A1
----a11
----a12
-B1
-----b1
用treeview.items[3]可取得B1节点,有没有更好的方式获得呢?因为A1 B1属于同级的节点,我想方便的获取同级的任一指定节点。
----a11
----a12
-B1
treeview中的树型结构如上;
现在我想用程序在B1这一节点添加一个子节点 实现后的结构如下:
-A1
----a11
----a12
-B1
-----b1
用treeview.items[3]可取得B1节点,有没有更好的方式获得呢?因为A1 B1属于同级的节点,我想方便的获取同级的任一指定节点。
有很多方法,treeview很好用
.....
节点 StateIndex值
A1 0
a11 1
a12 2
B1 3
然后就可以用节点的StateIndex的值访问相应节点。
// 现在我想用程序在B1这一节点添加一个子节点
可以如下实现:
procedure TForm1.Button1Click(Sender: TObject);
var
iCount: integer;
begin
for iCount:= 0 to TreeView1.items.count - 1 do
if TreeView1.Items.Item[iCount].StateIndex = 3 then
TreeView1.Items.AddChild(TreeView1.Items.Item[iCount], 'b11');
// 设置b11的StateIndex
TreeView1.Items.Item[iCount].StateIndex:= 4;
end;
//我想方便的获取同级的任一指定节点。
你可以用节点的StateIndex判断并进行访问。如上面代码所示。
for iCount:= 0 to TreeView1.items.count - 1 do
if TreeView1.Items.Item[iCount].StateIndex = 0 then
或
if TreeView1.Items.Item[iCount].StateIndex = 3 then
其它的同样道理。
添加同级
procedure Tgudingzichanjiangouzhuwubiao.MenuItem1Click(Sender: TObject);
begin
node:=treeview1.Items.AddChild(treeview1.Selected.Parent,'新建部门');
j:=1;
end;添加下级;
procedure Tgudingzichanjiangouzhuwubiao.N12Click(Sender: TObject);
begin
node:=treeview1.Items.AddChild(treeview1.Selected,'新建部门');
j:=1;
end;
删除
procedure Tgudingzichanjiangouzhuwubiao.N13Click(Sender: TObject);
begin
if MessageDlg('你确定要删除该项吗?',mtConfirmation,[mbYes,mbNo],0)=idYes then
treeview1.Selected.Delete;
j:=1;
end;
var node:Tnode;
添加同级
procedure Tgudingzichanjiangouzhuwubiao.MenuItem1Click(Sender: TObject);
begin
node:=treeview1.Items.AddChild(treeview1.Selected.Parent,'新建部门');
j:=1;
end;
下级procedure Tgudingzichanjiangouzhuwubiao.N12Click(Sender: TObject);
begin
node:=treeview1.Items.AddChild(treeview1.Selected,'新建部门');
j:=1;
end;procedure Tgudingzichanjiangouzhuwubiao.N13Click(Sender: TObject);
begin
if MessageDlg('你确定要删除该项吗?',mtConfirmation,[mbYes,mbNo],0)=idYes then
treeview1.Selected.Delete;
j:=1;
end;