网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
bpl插件系统开发
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
nbsp;      thePlugin.EditConfig
        3.执行插件
        thePlugin.SetRunParam;
        thePlugin.Execute;
        thePlugin.GetRunResult; //处理插件执行结果
    }
    IPlugin = interface
        [''{48BF4000-B028-4B57-9955-B1A8305DA394}'']
        function GetRunResult: TObject; //用于向容器返回执行Execute后的结果
        //用于容器传如执行参数,通常会显示一个Form让用户输入,如果用户存入了
        procedure SetRunParam;
        function GetInfo: TPluginInfo;  //向容器返回插件的信息
        {
        用于容器调用配置插件的持久性配置,
        通常会显示插件内的一个配置Form,
        并可以将Form中的用户输入存入插件配置目录
        }
        procedure EditConfig;
        procedure Execute;              //执行插件
    end;

implementation

end.

 

 

 

另两个codemyth开头的单元是我自己的函数包,其中codemyth.util.objectList声明了TObjectList类,它继承自TstringList类,但它可以自动销毁Objects中存储的对象实例而已.你可以用TstringList代替它,但你就需要自己释放TPluginList中的接口变量列表(虽然接口不需要释放,他通过引用计数来自释放

我们可以想像这样一个系统,与mvc的思想比较相同,controller负责整个系统的调度,当用户执行了某个action后,controller将其处理后用某个特定的view来呈现给用结果.这就是mvc
先看看这个图

 

这图是我用Together6.1画的,关心的设计思想,而不是代码本省,而且together本身也不支持pascal语法生成(不知道有没有插件)

其中的IMisDriver就是mvc中的TController,它负责协调整个系统,驱动系统工作起来.在delphi中它就是一个全局变量,任何单元都可以包含它,并访问它的功能,在IMisDriver内部,将会用到我们上一章说到的TPluginLoader来持有所有的服务接口

下面解释一下各个接口的作用,

ITracer,这是一个用来写入跟踪信息的接口,它仿照了一些log4j的思想.

ILogin,它用于登录的到系统,至于它后台使用的机制,当然要靠我们的实现来进行验证

IUserInfo:它返回当前登录用户的各种信息,

IAuthentic用于验证当前用户是否具有某个操作的权限.

IDataService用于提供数据服务,它可以从数据库中取得数据,并支持事务,

IShortcutDispather它用于将用户的快捷输入转化为某个操作

IActionManager用于管理用户动作和该动作应采用的处理数据的类的对应关系,

IProcessData用于处理给定的数据.

我们还可以看到IView和IReport从IProcessData继承下来,他们同样用来处理数据,只不过

IVew用于给用户呈现数据的crud界面

IReport用于给用户呈现报表

继承自IView的几个接口,用于对同一数据呈现不同的操作界面,我在另一个项目FormLib中基本实现了这些功能.

那么mvc的的通常操作的流程是什么样子呢?

 

上图没有包含一些全

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

    免费论文

    原创论文

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