在DLL里该菜单要动态生成,输出函数要怎么定义呢?
在主程序里如何调用呢?

解决方案 »

  1.   

    这个简单你要把你要动态生成菜单的句柄传给.Dll里面的函数
    procedure (a: TMainMenu);
    var
      NewMenu: TMenuItem;
    begin
        NewMenu := TMenuItem.Create(Self);
        NewMenu.Caption := PlugInName;
        NewMenu.ShortCut := TextToShortCut('Ctrl+D');
        NewMenu.Tag := i;
        TMainMenu.Add (NewMenu);
    end;
    //我刚刚写的,你试试看
      

  2.   

    加一个 
         NewMenu.OnClick := PlugInClick; //回调的函数
      

  3.   

    pluginclick 要写在Dll里面
      

  4.   

    谢谢zsy_good
    你这里好象是带入一个参数TMainmenu的,如果要不传入任何参数,而要返回一个菜单呢?
      

  5.   

    菜单里的事件已经定义了,而且在主程序里也可以调用该菜单,事件也响应了,但关闭主程序时出现内存错误。
    调出菜单后不点击菜单,退出时不出现错误,点击后退出则出现错误。我想可能是DLL里的定义可能有些问题。请各位高手指点。
      

  6.   

    我的意思是从DLL里返回一个MenuItem,主程序取得该Menuitem后加入到主程序的MainMenu里