网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
bpl插件系统开发
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
接口的bpl,一个是描述该插件功能的xml.

 

 

 

程序启动时,将加载所有的插件,在运行过程中调用某个接口时,将会向一个PluginLoader请求该接口,该PluginLoader会返回一个插件变量给调用者,而它是使用在bpl中的类来完成该调用.

 

 

 

over.

 

 

 

下面给出一个bplLoader类的代码例子,它可以被你的主程序调用,就是插件管理类

 

 

 

{*******************************************************}
{
codemyth.Group
copyright 2004-2005

codemyth(at)gmail(dot)com

Create at 2005-7-20 11:22:26

    插件容器类,用于载入插件

Change history:

}
{*******************************************************}

unit uPluginLoader;

interface

uses codemyth.utils, codemyth.util.objectlist, uIPlugin, Xmlplugin, Classes,
    SysUtils;

type

    TPluginLoader = class( TObject )
    private
        FPluginList: TObjectList;       //存储插件调用接口
        function GetPlugin( const id: string ): IPlugin;
        function GetCount: integer;
        function GetPluginByIndex( const index: integer ): IPlugin;
    protected
        procedure UnloadPlugin( const id: string ); overload; //卸载指定的插件
        procedure UnloadPlugin( const index: Integer ); overload;  //卸载指定的插件
        procedure LoadPlugin( const XmlFile: string ); //载入位于某目录下的插件
        procedure UnloadPlugins;        //卸载所有裁入的插件接口
    public
        constructor Create;
        destructor Destroy; override;
    public
        procedure LoadPlugins( Directory: string ); //载入插件
        property Plugin [const id: string]: IPlugin read GetPlugin;
        property PluginByIndex [const index: integer]: IPlugin read
        GetPluginByIndex;
        property Count: integer read GetCount;
    end;

implementation

{ TPluginLoader }

constructor TPluginLoader.Create;
begin
    FPluginList := TObjectList.Create;
end;

destructor TPluginLoader.Destroy;
begin
    UnloadPlugins;
    FPluginList.Free;
    inherited;
end;

function TPluginLoader.GetCount: integer;
begin
    result := FPluginList.Count;
end;

function TPluginLoader.GetPlugin( const id: string ): IPlugin;
var
    index                : Integer;
begin
    index := FPlugi

  • 上一篇资讯: Delphi 的RTTI机制浅探
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号