动态创建Tree

来源:互联网 发布:国外大学网络课程 编辑:程序博客网 时间:2024/06/02 19:21

procedure ExpandTree(ALevel: Integer);   //展开级数
var
  i: Integer;
begin
  for i := 0 to treeView.Items.Count - 1 do
  begin
    if treeView.Items[i].Level <= ALevel then
      treeView.Items[i].Expand(False);
  end;
end;

procedure TfrmXSJKZK.PopulateTree;    //生成树  ,程序调用此过程
var
  ATreeNode: TTreeNode;
  ANodeData: PString;
begin
  treeView.Items.Clear;
  ATreeNode := treeView.Items.Add(nil,'根节点');
  ATreeNode := treeView.Items.AddChild(treeView.TopItem ,'第一层节点');   //节点可动态插入

  Query.Close;
  Query.SQL.Clear;
  Query.SQL.Add('SQL Statement');
  Query.Open;
  Query.First;
  while not Query.Eof do
  begin
    ATreeNode := treeView.Items.AddChild(treeView.TopItem.Item[0],Query.FieldByName('Field1').AsString);  //第二层节点
     New(ANodeData);
     ANodeData^ := Query.FieldByName('Field2').AsString;      //节点值,不显示
     ATreeNode.Data := ANodeData;
     Query.Next; 
end;

  ExpandTree(0);

end;

原创粉丝点击