TcxtreeList控件数据加载
procedure LoadTcxTReeList(Tree: Tcxtreelist; Qeytable: TAdoQuery; bm: string; SName: array of string);
var level, firstlen, k, i: integer;
mynode: array[0..9] of TcxTreeListNode;//存每层节点,最大十层
begin
k := Length(SName);
tree.Clear;
if Qeytable.RecordCount = 0 then Exit;
level := 0;
Qeytable.First;
tree.BeginUpdate;
firstlen := Length(Qeytable[bm]);//第一层编码长度
mynode[level] := tree.TopNode; //取根节点
while not Qeytable.Eof do //遍历数据表,利用编码字段记录排序规律,依次添加树节点
begin
level := (Length(Qeytable[bm]) - firstlen) div 2; //第几层
if (level - 1) >= 0 then
begin
mynode[level - 1].Nodes.InsertObject(0, nil, '', Qeytable[SName[level]]);
mynode[level] := mynode[level - 1].Nodes[0];
end
else
begin
tree.AddChild(nil, '', Qeytable[SName[level]]);
mynode[level] := tree.Items[tree.Count - 1];
end;
Qeytable.Next;
end;
tree.EndUpdate;
end;
评论区