关于delphi的控件TreeView1中在当前之后,当前之前创建节点的问题
关于delphi的控件TreeView1中在当前之后,当前之前创建节点的问题先看看人家实现的效果
再看看我实现的效果:
//这是在当前选中项目添加新项目的代码
var
Node1: TTreeNode;
begin
sTreeView1.Items.AddChild(Node1, 'New Item');
end;
这个。。。。。是向前添加的。。。也有问题
procedure TMDIChild.N4Click(Sender: TObject);
var
MyTreeNode1: TTreeNode;
begin
with STreeView1.Items do
begin
//MyTreeNode1 := Add(nil, 'RootTreeNode1');
MyTreeNode1 := Add(nil, STreeView1.Selected.Text);
AddChild(MyTreeNode1, 'ChildNode1');
end;
明显跑国外去了。。。{:301_1008:}
https://static.52pojie.cn/static/image/hrline/2.gif
另外还差一个在当前节点选中时,在其下一层创建子节点的 ,也不会弄。
以下是参考代码: 可惜我没整明白
procedure TMDIChild.N4Click(Sender: TObject);
var
MyTreeNode1, MyTreeNode2: TTreeNode;
begin
with STreeView1.Items do
begin
// Clear; //删除任何现有节点
{添加根节点
将子节点添加到刚才添加的节点}
//MyTreeNode1 := Add(nil, 'RootTreeNode1');
MyTreeNode1 := Add(nil, STreeView1.Selected.Text);
//AddChild(MyTreeNode1, 'ChildNode1');
{
//添加另一个根节点
MyTreeNode2 := Add(MyTreeNode1, 'RootTreeNode2');
//把MyTreeNode2给一个子节点
AddChild(MyTreeNode2,'ChildNode2');
将MyTreeNode2更改为ChildNode2
向其中添加子节点}
//MyTreeNode2 := STreeView1.Items;
// AddChild(MyTreeNode2,'ChildNode2a');
//将另一个子节点添加到ChildNode2,在ChildNode2a之后
// AddChild(MyTreeNode2,'ChildNode2b');
//添加另一个根节点
// Add(MyTreeNode1, 'RootTreeNode3');
end;
end;
procedure TMDIChild.N1Click(Sender: TObject);
var
MyNode: TTreeNode;
i: integer;
begin
with STreeView1.Items do
begin
MyNode := STreeView1.items;
AddChild(MyNode, '1111111');
end;
end;
又改了一下,还是有bug 我又认真观察了下人家的程序
如果在1个根节点上 、则生成的都是同级的根节点
。。。。。。。。。的子根点上,则生成的是同级的子节点。 delphiX年前玩过,已经很久没玩了。 大佬,去盒子上问下吧 看帮助吧,应该很简单 AddChild 是在指定节点下增加一个子节点
Add 才是增加同级别的节点, 但会增加到同一级节点的最后面 Insert 是在指定节点前插入一个新节点, 我写了一个在指定节点后插入的InsertAfter;
试试是不是你要的效果
procedure InsertAfter(aTree:TTreeView; aText: String);
var
nodeThat: TTreeNode;
begin
nodeThat := aTree.Selected.GetNext;
if nodeThat=nil then
aTree.Items.Add(aTree.Selected, aText)
else
aTree.items.Insert(nodeThat, aText);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
InsertAfter(TreeView1, 'New Item ' + inttostr(aIndex));
Inc(aIndex);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TreeView1.Items.Insert(TreeView1.Selected, 'New Item ' + inttostr(aIndex));
Inc(aIndex);
end;
页:
[1]