treeview的数据载入,看看怎样还能提高效率(100分)

  • 主题发起人 主题发起人 吴下阿蒙
  • 开始时间 开始时间

吴下阿蒙

Unregistered / Unconfirmed
GUEST, unregistred user!
type
PUser = ^TUserRec ;
TuserRec = record
id : integer ;
name : string;
end;

function TDMUser.loadDeptTree(pitems :TTreeNodes ): boolean;
var vmyNode : array [0..6] of TtreeNode ;
vmydata : puser;

//--------------------------------------------------------------------------
// 装配树的下级分支,递归调用
procedure getit ( pid : integer ; pLevel : integer ;var pNode : TTreeNode ) ;
var v_int : integer;
v_node : TTreeNode;
begin
with dmmain.QryPub1 do
begin
filtered := false;
filter := 'lngdeptupid = ' + inttostr(pid);
filtered := true;
if eof then exit;
while not eof do
begin
vmydata := new(puser);
vmydata.id := fieldbyname('lngdeptid').AsInteger ;
vmydata.name := '['+fieldbyname('sdeptcode').AsString +']'+ fieldbyname('strdeptname').AsString ;
pitems.AddChildObject(pNode,vmydata.name ,vmydata);
next;
end;
for v_int := 0 to pNode.Count -1 do
begin
v_node := pNode[v_int];
getit( puser(v_node.data)^.id ,plevel+1 ,v_node );
end;
end;
end;

begin
vmyNode[0] := pItems.add(nil ,'全部');
with dmmain.QryPub1 do
begin
close;
sql.Clear;
filtered := false;
filter := '';
sql.Add( ' select * from xjDept ' );
open;
getit(0,0,vmynode[0]);
filtered := false;
filter := '';
close;
end;
end;
 
看看这一贴:

http://www.delphibbs.com/delphibbs/dispq.asp?lid=1362622
 
可以把你的联系方式给我么???
peixiaokai@163.com
 
小裴,偶发过邮件给泥了,收到否[:D]

继续...
 
用loadfromfile
 
加上
adoquery1.DisableControls;
adoquery1.EnableControls;

treeview1.Items.BeginUpdate;
.....
treeview1.Items.EndUpdate;
一定比你现在快
 
多人接受答案了。
 
后退
顶部