树型结构的产生和方法

来源:互联网 发布:blue nile淘宝 编辑:程序博客网 时间:2024/05/21 09:27

编号  名称
01  中国
0101  吉林省
010101  长春市
010102  吉林市
0102  江苏省
010201  南京市
010202  常州市
02  美国
0201  密歇根州
020101  底特律市
0202  华盛顿州
020201  温哥华市
020202  西雅图市
03  澳大利亚

procedure TForm1.Button1Click(Sender: TObject);
const
  ID_DEPT = 2;
var
  nLevel: Integer;
  pNodes: array[0..1023] of TTreeNode;
  lpID, lpName: string;
begin
  ADODataSet1.Close;
  ADODataSet1.CommandText := 'SELECT * FROM [国家] ORDER BY [编号]';
  ADODataSet1.Open;
  pNodes[0] := nil;
  TreeView1.Items.Clear;
  with ADODataSet1.Recordset do
    while not Eof do
    begin
      lpID := Fields['编号'].Value;
      lpName := Fields['名称'].Value;
      nLevel := Length(lpID) div ID_DEPT;
      pNodes[nLevel] := TreeView1.Items.AddChild(pNodes[nLevel - 1], lpName);
      MoveNext;
    end;
end;


//////////方法二///////////////////////////////

var
  i,j,m,n:integer;
  RootNode,ChildNode,GrandChildNode,NewGrandChildNode:TTreeNode;
begin
  with TreeView1.Items do
    begin
      Clear;
      RootNode:=Add(nil, '所有情况');
      RootNode.ImageIndex:=0;
      RootNode.SelectedIndex:=RootNode.ImageIndex;
      for i:=0 to 8 do
        begin
          ChildNode:=AddChild(RootNode,'信息');
          ChildNode.ImageIndex:=1;
          ChildNode.SelectedIndex:=ChildNode.ImageIndex;
        end;
    end;
end;