如题

解决方案 »

  1.   

    这是一段用数据库一对多关联动态生成TreeView的程序段,可以参考。
      sen : TTreeView;
      t,v : TTreeNode;
      area,id : string;
      len : integer;
    begin
      sen := Sender as TTreeView;
      qArea.Open ();
      qArea.First ();
      t := TTreeNode.Create(sen.Items);
      while not qArea.Eof do
      begin
        area := qArea.Fields.FieldByName ('area').AsString;
        t := sen.Items.Add(t,area);
        t.ImageIndex := 13;
        t.SelectedIndex := 13;
        qArea.Next;
        SelectCustMsg ('WHERE area=''' + area +  '''','','');
        Application.ProcessMessages ();
        while not qCustMsg.Eof do
        begin
          id := qCustMsg.Fields.FieldByName ('custId').AsString;
          len := Length (id);
          id := zeroPad[len] + id;
          v := sen.Items.AddChild (t,id);
          v.ImageIndex := 14;
          v.SelectedIndex := 14;
          qCustMsg.Next ();
          Application.ProcessMessages ();
        end;
      end;
      qArea.Close ();
    end;