这有什么难:  TMenuItem *mi=new TMenuItem(NULL);
  mi->Caption=Config.ConnEntryNameList->Strings[i];
  mi->OnClick=DialUpMenuClick;  PopupMenu1->Items->Add(mi);

解决方案 »

  1.   

    var
        MenuItem:TMenuItem;
    begin
                 MenuItem:=TMenuItem.Create(Mainfm.mainmenu1);
                 MenuItem.Caption:=Copy(MenuPaths[i],1,T-1);
                 MenuItems[i].OnClick:=MenuClick;
                 Mainfm.mainmenu1.Add(MenuItems[i]);
    end;
    其中menuclick是一个
    procedure (Sender: TObject);样的过程
      

  2.   

    var
        MenuItem:TMenuItem;
    begin
                 MenuItem:=TMenuItem.Create(Mainfm.mainmenu1);
                 MenuItem.Caption:=Copy(MenuPaths[i],1,T-1);
                 MenuItems[i].OnClick:=MenuClick;
                 Mainfm.mainmenu1.Add(MenuItems[i]);
    end;
    其中menuclick是一个
    procedure (Sender: TObject);样的过程
      

  3.   

    TO:楼上两位兄弟,
    在编译Mainfm.mainmenu1.Add(MenuItems[i]);这一句时出错,
    好象没有ADD这个方法,
    出错提示:“undeclared rdentitier:'add';
      

  4.   

    使用insertmenuitem(Hmenu hmenu,Uint nitem, bool fbypostition, 
    LPmenuiteminfo lpmii)函数
    里面参数应该看的懂了吧!!
    其中:LPmenuiteminfo 是要插入新的menuitem的结构.
      

  5.   

    TO:dupenf(飞跃人生) 
    对不起,里面的参数看得不太明白,
    能够具体解释一下吗?
      

  6.   

    老兄,我看你根本就没有试我的代码(100%可能性),这是VCL的定义:class PASCALIMPLEMENTATION TMenuItem : public Classes::TComponent 
    {
      ...............
    void __fastcall Add(TMenuItem* Item)/* overload */;
    void __fastcall Add(TMenuItem* const * AItems, const int AItems_Size)/* overload */;
      .............
    }   怎么会没有Add方法,我在BCB中编译同样通过.-------------真正通不过的应该是netlib(河外孤星) 的代码,因为TMainMenu里边确实没有ADD方法.
      

  7.   

    TO:BCB_FANS(四大名捕之追杀令) (
    呵呵,老兄,你的是对的,
    万分感谢