在Delphi应用程序(*.Exe)中,加载动态插件,就象在Excel中动态加载插件一样,设置一些属性就可以用了。
  eg.在Excel: 视图\工具栏\控件工具箱中,有“其他控件” 按纽,点中可以看到好多其他控件,选择后就可以用,我想在delphi可执行文件实现这种功能

解决方案 »

  1.   

    要实现是可以的,但就复杂了
    需要编写接口,需要动态LoadLibrary的,等等如使用第三方的会简单很多
    推荐UIL Plugin System,但源码版的难找到,这个组件确实是做得不错的
      

  2.   

    Component\Import ActiveX Control…\
    在弹出窗口里加选择你要用的控件就行了,使用的时候就像其它控件一样,但前提是你的控件必须是已经注册过了的。
      

  3.   

    largewang(成都:王珍义[老王][C#学习中断]) 朋友
    能否发个例子给我,谢谢!
    [email protected]
      

  4.   


    我是相信largewang老王很好解决了的。
      

  5.   

    largewang是保守派!
    可能知道,也可能不知道,但至少不愿意将成果与人共享,怕人...
    中国软件行业的悲哀......
      

  6.   

    呵呵..所以他是垃圾王...有一种简单的加载插件是使用运行期包..
    在一个DELPHI PORJECT中,你可以选定一个或多个单元入加一个运行期包.
    编译后,这些单元就是独立的BPL文件...
      

  7.   

    哀。。每个人都有自己的生存环境,比如很穷,当然就希望技术可以换钱。当然有的人很有钱不在乎,也是自己的事情,每个人有每个人的价值观念,不过如果largewang 可以解决问题,至少说明他在这方面下了功夫。。至于愿意不愿意将成果与人共享是他自己的事情。不要老是拿中国软件的悲哀这样的大帽子扣人。。郁闷。。而且有心找这些资料还是很多的。。如在
    google 上输入 “plugins delphi code” “plugins delphi activex” 这样的关键可以找到很多。。怎么就自己不会找一下。。下一下功夫在说呢。。
      

  8.   

    我说:Lazyboy18(轻松一刻) 
    老大,人家不下工夫你都知道,你神了,牛佩服!
      

  9.   

    我看这个问题:Lazyboy18一定能解决了!我等你。牛哥!
      

  10.   

    不是牛哥,呵呵,我在这个方法写过代码,没有具体解决的例子,抱歉。。只是我觉得 largewang(成都:王珍义[老王][C#学习中断]) 不愿意当然有自己的原因。。现在总有人喜欢用大帽子扣人。。偶看了只是觉得不爽而已。。你的这个问题我没有具体写过代码,不过以前还是查过一资料的。。根据查找过的资料,可以总结为一个大概的方法。具体代码我可真的没有,抱歉。说得不对也不要见怪。这里提供的只是一个思路:一般插件就是一个DLL
    (首先设计的时候定义好DLL的接口方式,好象TCP一样的概念,主程序在设计阶段也需要设计好可提供给插件DLL的对象及参数等)
    1)你的软件启动的时候搜索某个目录下的*.dll (技术分解:文件搜索功能)
    2)动态载入DLL,根据自定义的接口,与DLL对话,看是否是软件支持的插件DLL。是则读出相关的信息及参数。(技术分解:DLL载入问题)
    3)动态在菜单或需要调用的地方创建菜单或按钮 (技术分解:控件的动态创建)
    4)传递主程序的对象给插件DLL。
    5)插件的执行.....
    由于具体没有写过,因此这仅仅是我对插件设计方面的一点思路而已。。也没有具体验证过,不知道对不对。如果对的话。则可以按照技术分解的提示,逐个的根据技术点进行具体的技术突破。然后所有技术融合一次。在进行构造即可。另外网上有不少插件的控件,偶没有使用过。不过可根据插件名称作为google关键字进行查询,可以获得大量资料及例子。。呵呵。。
      

  11.   

    Com+,你看看IE插件就全明白了