B
babytime
Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现如下功能:动态添加treeview的节点,并允许用户同时输入节点名称,若名称有重复
则重新输入,部分代码如下:
procedure TForm1.Button5Click(Sender: TObject);
var
treerootnode,addednode:ttreenode;
begin
treerootnode:=treeview1.TopItem ;
addednode:=treeview1.Items.AddChild(treerootnode,'');
addednode.EditText;
end;
procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
var S: String);
var
i:integer;
rootnode:ttreenode;
newname,sqlstring:string;
begin
newname:=s;
rootnode:=treeview1.Items.Item[0];
for i:=0 to rootnode.Count-1 do begin
if newname=rootnode.Item.Text then
begin
showmessage('节点'+newname+'已存在,请重新输入节点名!');
treeview1.Items[0].Item[node.Index].Selected:=true;
treeview1.endedit(true)
treeview1.Selected.EditText;
exit;
end;
end;
showmessage('新建节点成功!');
treeview1.Items[0].Item[node.Index].Selected:=true;
treeview1.endedit(false);
end;
若新建不成功,调用treeview1.Selected.EditText时会出现此节点被选中,可是text为空的
情况。请教应该怎样写才能实现我想要的功能?
另外我用treeview.endedit(true)和treeview.endedit(false)没有区别,treeview都会纪录
下用户的修改,请问应该怎样用啊??
则重新输入,部分代码如下:
procedure TForm1.Button5Click(Sender: TObject);
var
treerootnode,addednode:ttreenode;
begin
treerootnode:=treeview1.TopItem ;
addednode:=treeview1.Items.AddChild(treerootnode,'');
addednode.EditText;
end;
procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
var S: String);
var
i:integer;
rootnode:ttreenode;
newname,sqlstring:string;
begin
newname:=s;
rootnode:=treeview1.Items.Item[0];
for i:=0 to rootnode.Count-1 do begin
if newname=rootnode.Item.Text then
begin
showmessage('节点'+newname+'已存在,请重新输入节点名!');
treeview1.Items[0].Item[node.Index].Selected:=true;
treeview1.endedit(true)
treeview1.Selected.EditText;
exit;
end;
end;
showmessage('新建节点成功!');
treeview1.Items[0].Item[node.Index].Selected:=true;
treeview1.endedit(false);
end;
若新建不成功,调用treeview1.Selected.EditText时会出现此节点被选中,可是text为空的
情况。请教应该怎样写才能实现我想要的功能?
另外我用treeview.endedit(true)和treeview.endedit(false)没有区别,treeview都会纪录
下用户的修改,请问应该怎样用啊??