to peihexian(没什么好说的) 
说说啊

解决方案 »

  1.   

    窗体上放一个MAINMENU1,一个TREEVIEW1,TREEVIEW1里的内容随意添加
    用如下代码
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
      level:integer;
      treenode:ttreenode;
      menuitem:tmenuitem;
      procedure addmenu(var item:ttreenode;var menuitems:tmenuitem;level:integer);
      var
        i:integer;
        treenode:ttreenode;
        menuitem:tmenuitem;
      begin
        for i:=0 to item.Count-1 do
        if item.Item[i].Level=level then
        begin
          treenode:=item.Item[i];
          menuitem:=tmenuitem.Create(self);
          menuitem.Caption:=treenode.Text;      menuitems.Add(menuitem);
          if treenode.HasChildren then
            addmenu(treenode,menuitem,level+1);
        end;
      end;
    begin
      level:=0;
      for i:=0 to treeview1.items.Count-1 do
      if treeview1.Items[i].Level=level then
        begin
          treenode:=treeview1.Items[i];
          menuitem:=tmenuitem.Create(self);
          menuitem.Caption:=treenode.Text;      mainmenu1.items.Add(menuitem);
          if treenode.HasChildren then
            addmenu(treenode,menuitem,level+1);
        end;
    end;
    其中用到了递归,办法比较笨,如有更好的办法请告知,谢谢
    一点愚见d6+win2000测试通过
      

  2.   

    //---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      AddSubMenu(NULL,TreeView1->Items->Item[0]);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::AddSubMenu(TMenuItem * ParentMenu,TTreeNode * ParentNode)
    {
      for (int i=0;i<ParentNode->Count;i++)
      {
        TMenuItem * TmpMenu=new TMenuItem(NULL);
        if (ParentMenu==NULL){
          aaa1->Add(TmpMenu); //aaa1是一个已存在的Menu名称
        }
        else
        {
          ParentMenu->Add(TmpMenu);
        }
        TmpMenu->Caption=ParentNode->Item[i]->Text;
        AddSubMenu(TmpMenu,ParentNode->Item[i]); //递归一下
      }
    }
      

  3.   

    to peihexian(没什么好说的)
    没用过BCB
    但我看你程序有点问题要请教1。你从0---》COUNT???而不是COUNT-1?这里好奇怪?2。你将所有的items都加入,也就是说不是同一层的ITEMS你也加入进去了?
    望指教
      

  4.   

    to : qiubolecn(来自差生市) 
    这种方法在处理很多节点时,速度怎样?
      

  5.   

    to shadows(影子)没问题,你自己可以试一下
      

  6.   

    to : qiubolecn(来自差生市) 
    thanks
      

  7.   

    to qiubolecn(来自差生市):
    你的第一个问题在BCB中就应该这么写
    第二个问题你猜对了,因为treeview是树形结构,而菜单也可以用子菜单来表示它,所以Treeview中的树是什么样,菜单就是什么样!