也有可能是偶的节点位置表述错了,偶的treeview是:超级用户 薪用户1 name passwd 薪用户2 …… 普通用户 新用户1 name passwd 薪用户2 ……偶想使‘超级用户’这个节点不可打开,改怎么写? 另外,“新用户1、name、passwd”这三个节点的位置,应该怎么表示?
1、对于超级用户,如果你想让他打开或不打开。 procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean); begin if Node.Text='超级用户' then AllowExpansion:=true else AllowExpansion:=False; end; 2、位置可以用Node.Level判断:根为0,次一级为1,依次;也可以根据父节点、爷节点是否存在判断
在treeview中: 超级用户 薪用户1 name passwd 薪用户2 …… 普通用户 新用户1 name passwd 薪用户2 ……“普通用户”这个节点怎么表示? 偶用 treeview.items.absolutindex[1] treeview.level('普通用户') 表示,系统均不认
是不是定位“普通用户”这个节点, 以前不是说过了吗,用搜索的方法 var node:TTreeNode; for i:=0 to TreeView.Items.Count-1 do if TreeView.Items[i].Text='普通用户' then node :=TreeView.Items[i];node 就是普通用户这个节点
偶想要使用这个节点,偶想把数据库中的用户读出来,分别附在trrview的 超级用户 和 普通用户 中, 源代码如下: procedure inittreeview1();begin data.qu_yhglint.Close; data.qu_yhglint.open; for j:=1 to data.qu_yhglint.RecordCount do begin if data.qu_yhglint.fieldbyname('issuper').asstring='y' then begin newnode:=f_yhgl.treeview1.items.addchild(f_yhgl.treeview1.Items[0],data.qu_yhglint.FieldByName('alias').AsString); newnode:=f_yhgl.treeview1.items.addchild(newnode,data.qu_yhglint.FieldByName('name').AsString); newnode.imageindex:=2; newnode.selectedindex:=2; newnode:=f_yhgl.treeview1.items.add(newnode,data.qu_yhglint.FieldByName('passwd').AsString); newnode.imageindex:=3; newnode.selectedindex:=3; end; if data.qu_yhglint.fieldbyname('issuper').asstring='n' then begin newnode:=f_yhgl.treeview1.items.addchild(f_yhgl.treeview1.items[0],data.qu_yhglint.FieldByName('alias').AsString); newnode.imageindex:=1; newnode.selectedindex:=1; newnode:=f_yhgl.treeview1.items.addchild(newnode,data.qu_yhglint.FieldByName('name').AsString); newnode.imageindex:=2; newnode.selectedindex:=2; newnode:=f_yhgl.treeview1.items.add(newnode,data.qu_yhglint.FieldByName('passwd').AsString); newnode.imageindex:=3; newnode.selectedindex:=3; end; data.qu_yhglint.next; end end;但是用户都出现在“超级用户”下,
薪用户1
name
passwd
薪用户2
……
普通用户
新用户1
name
passwd
薪用户2
……偶想使‘超级用户’这个节点不可打开,改怎么写?
另外,“新用户1、name、passwd”这三个节点的位置,应该怎么表示?
procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
begin
if Node.Text='超级用户' then AllowExpansion:=true
else
AllowExpansion:=False;
end;
2、位置可以用Node.Level判断:根为0,次一级为1,依次;也可以根据父节点、爷节点是否存在判断
超级用户
薪用户1
name
passwd
薪用户2
……
普通用户
新用户1
name
passwd
薪用户2
……“普通用户”这个节点怎么表示?
偶用
treeview.items.absolutindex[1]
treeview.level('普通用户')
表示,系统均不认
以前不是说过了吗,用搜索的方法
var
node:TTreeNode;
for i:=0 to TreeView.Items.Count-1 do
if TreeView.Items[i].Text='普通用户' then
node :=TreeView.Items[i];node 就是普通用户这个节点
普通用户 中,
源代码如下:
procedure inittreeview1();begin
data.qu_yhglint.Close;
data.qu_yhglint.open;
for j:=1 to data.qu_yhglint.RecordCount do
begin
if data.qu_yhglint.fieldbyname('issuper').asstring='y' then
begin
newnode:=f_yhgl.treeview1.items.addchild(f_yhgl.treeview1.Items[0],data.qu_yhglint.FieldByName('alias').AsString);
newnode:=f_yhgl.treeview1.items.addchild(newnode,data.qu_yhglint.FieldByName('name').AsString);
newnode.imageindex:=2;
newnode.selectedindex:=2;
newnode:=f_yhgl.treeview1.items.add(newnode,data.qu_yhglint.FieldByName('passwd').AsString);
newnode.imageindex:=3;
newnode.selectedindex:=3; end; if data.qu_yhglint.fieldbyname('issuper').asstring='n' then
begin
newnode:=f_yhgl.treeview1.items.addchild(f_yhgl.treeview1.items[0],data.qu_yhglint.FieldByName('alias').AsString);
newnode.imageindex:=1;
newnode.selectedindex:=1;
newnode:=f_yhgl.treeview1.items.addchild(newnode,data.qu_yhglint.FieldByName('name').AsString);
newnode.imageindex:=2;
newnode.selectedindex:=2;
newnode:=f_yhgl.treeview1.items.add(newnode,data.qu_yhglint.FieldByName('passwd').AsString);
newnode.imageindex:=3;
newnode.selectedindex:=3; end;
data.qu_yhglint.next;
end
end;但是用户都出现在“超级用户”下,
然后把
newnode:=f_yhgl.treeview1.items.addchild(f_yhgl.treeview1.items[0],data.qu_yhglint.FieldByName('alias').AsString);
改成
newnode:=f_yhgl.treeview1.items.addchild(node,data.qu_yhglint.FieldByName('alias').AsString);