是高手,就应该能解决这个问题,代码如下(50分)

  • 主题发起人 主题发起人 wecap
  • 开始时间 开始时间
W

wecap

Unregistered / Unconfirmed
GUEST, unregistred user!
------041|
|04---temp
|049---temp
|045--temp
|12---temp
在当前节点的下一个子节点的下一个子节点自动追加一个子节点,temp,
谢谢高手,如点击+041先清除,04,049,045,12,然后重加载04.049.045,12,并且在04,049,045,12下面
自动追加一个子节点,temp, 我代码不知怎么写
我的控件为treeview1,node:ttreenode 以下的代码有错,getnextchild前面少了一个什么,如
node.getnextchild,我是初学者,不知对不,请修正
citem是什么类型,这样对不 citem:ttreenode
procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
var citem:ttreenode;
begin
Node.DeleteChildren; //清空所有子节点
AllowExpansion := True;
cItem := GetNextChild;
while cItem <> nil do begin
cItem.Add( temp); //这行有错误,citem根本没有add方法,
cItem := getNextChild;//这行也有错,
end;
end;
上面是一位高手提供的
以下是我的代码,请帮我修正最后几项代码的错,因为不能实现点击+041时,在当前节点的下一节点012,049等的下一节点实现
自动追加temp节点,
procedure TForm7.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
var node1,citem,citem1:ttreenode;
i1:integer;
s1:ansistring;
list1:tstringlist;
begin
edit13.Text:=node.Text;
node.selected:=true;
adoquery4.Close;
adoquery4.SQL.Clear;
adoquery4.SQL.Text:='select * from 生产计划2 where 父项编码='''+trim(node.Text)+'''';
ADOQUERY4.open;
list1:=tstringlist.Create;
node.DeleteChildren;
while not adoquery4.Eof do
begin
list1.Append(adoquery4.fieldbyname('子项编码').asstring);
adoquery4.Next;
end;
for i1:=0 to list1.Count-1 do
begin
s1:=' '+list1.Strings[i1];
treeview1.Items.AddChild(node,s1);
treeview1.Items.Addchild(node.GetNextChild(node),'temp');
end;
AllowExpansion := True;
treeview1.Items.Addchild(node,'temp');
citem:=node.GetNextChild(node);
while citem<> nil do
begin
treeview1.items.Add(nil,'temp');
citem:=node.GetNextChild(node);
exit;
end;
 
var
tv:TTreeNode;
begin
tv:=TreeView1.Selected;
tv.DeleteChildren;
TreeView1.Items.AddChild(tv,'04');
TreeView1.Items.AddChild(tv,'049');
TreeView1.Items.AddChild(tv,'045');
TreeView1.Items.AddChild(tv,'12');
TreeView1.Items.AddChild(tv,'temp');
end;
 
同意楼上
 
后退
顶部