在treeview的OnExpanding事件里写加几个自己写的函数就行了比如:procedure Ttj_snw.deletetemp(node: Ttreenode); var Tempnode: Ttreenode; begin if (node.count=1) then begin tempnode:=node.getFirstChild; //检验当前节点的子节点 if (tempnode.text='temp') then //如果节点为‘temp’则删触 tempnode.Delete; end;end;procedure Ttj_snw.addchildren(node: Ttreenode); var s :string; tempnode :Ttreenode; begin s:=node.text; { 还可以通过node.parent.text访问上一呈node } deletetemp(node); DataModule_main.ADOQuery_tj5.close; DataModule_main.ADOQuery_tj5.sql.clear; DataModule_main.ADOQuery_tj5.sql.add('DECLARE @s char(50) SELECT @s = jgbm FROM department WHERE (rtrim(ltrim(jgname)) ='''+trim(s)+''') SELECT jgname FROM department WHERE jgbm LIKE rtrim(ltrim(@s))+'+'''__'''+' ORDER BY jgbm'); DataModule_main.ADOQuery_tj5.open;
while not DataModule_main.ADOQuery_tj5.EOF do begin tempnode:=treeview1.items.addchild(node,DataModule_main.ADOQuery_tj5.fieldbyname('jgname').asstring); treeview1.items.addchild(tempnode,'temp'); DataModule_main.ADOQuery_tj5.next; end; 给分~~~~
procedure Ttj_snw.TreeView1Expanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean); begin { 按级别产生动作 case(node.Level) of 0:if(node.count<=1) then addchildren(node); 1:if(node.count<=1) then addchildren(node); end; } if(node.count<=1) then addchildren(node); name:=trim(node.Text); edit1.Text:=name; end;
var
Tempnode: Ttreenode;
begin
if (node.count=1) then
begin
tempnode:=node.getFirstChild; //检验当前节点的子节点
if (tempnode.text='temp') then //如果节点为‘temp’则删触
tempnode.Delete;
end;end;procedure Ttj_snw.addchildren(node: Ttreenode);
var
s :string;
tempnode :Ttreenode;
begin
s:=node.text;
{
还可以通过node.parent.text访问上一呈node
}
deletetemp(node);
DataModule_main.ADOQuery_tj5.close;
DataModule_main.ADOQuery_tj5.sql.clear;
DataModule_main.ADOQuery_tj5.sql.add('DECLARE @s char(50) SELECT @s = jgbm FROM department WHERE (rtrim(ltrim(jgname)) ='''+trim(s)+''') SELECT jgname FROM department WHERE jgbm LIKE rtrim(ltrim(@s))+'+'''__'''+' ORDER BY jgbm');
DataModule_main.ADOQuery_tj5.open;
while not DataModule_main.ADOQuery_tj5.EOF do
begin
tempnode:=treeview1.items.addchild(node,DataModule_main.ADOQuery_tj5.fieldbyname('jgname').asstring);
treeview1.items.addchild(tempnode,'temp');
DataModule_main.ADOQuery_tj5.next;
end;
给分~~~~
var AllowExpansion: Boolean);
begin
{ 按级别产生动作
case(node.Level) of
0:if(node.count<=1) then addchildren(node);
1:if(node.count<=1) then addchildren(node);
end;
}
if(node.count<=1) then addchildren(node);
name:=trim(node.Text);
edit1.Text:=name;
end;
因为该控件是和数据链接的,所以就快了