报表的插件技术及其动态设计(4)
作者:佚名; 更新时间:2014-12-03

  type

  TPluginInit=pro'cedure(Parentlist:Tlistbox);

  stdcall;

  由于过程存在于DLL内部,它通过标准调用、转换,编译所有导出例程,因此需要使用stdcall指示字。这个过程使用一个var参数,当过程返回的时候它包含插件的描述。

  要调用刚刚获得的过程,只需要使用保存地址的变量作为过程名,后面跟上任何参数。就本文的例子而言,声明:initproc(1istbox1);将会调用在插件中获得的相应过程,并且初始化报表列表框Listbox1。

  2.3构造报表插件

  插件文件是一个标准的DelphiDLL,DLL文件不仅可以让Delphi自身调用,而且也可以在Vc++、VB等其它语言程序中轻松调用。虽然插件是一个DLL文件,但是不一定要给它一个.DLL的扩展名。实际上,一个原因就足以让我们有理由改变扩展名,当父应用程序寻找要加载的文件时,新的扩展名可以作为特定的文件掩膜。通过使用别的扩展名(如trio)可以在一定程度上确信应用程序只会载入相应的文件。

  例子插件的代码是比较简单的。部分关键程序代码在下面已经列出。此处InitPlugin原型与外壳应用程序中的TInitPlugin类型应一致,使用附加的export保留字指定该过程将被导出。被导出的过程名称也将会出现在主工程源代码的exports段中。

  unitUsjxstbj;

  jnterface

  procedureInjtPlugjn(Parentljst:Tlistbox);stdcall:

  1mplementatiOn

  procedureInitPlugin(Parentlist:Tlistbox);

  begin

  Parentlist.Items.Addfbbname):

  end;

  在测试这个插件之前,要先把它复制到相应的路径下(如plug)。最简单的办法就是在主目录的子目录下创建插件,然后把输出路径设置为主路径。

核心期刊快速发表
Copyright@2000-2030 论文期刊网 Corporation All Rights Reserved.
《中华人民共和国信息产业部》备案号:ICP备07016076号;《公安部》备案号:33010402003207
本网站专业、正规提供职称论文发表和写作指导服务,并收录了海量免费论文和数百个经国家新闻出版总署审批过的具有国内统一CN刊号与国际标准ISSN刊号的合作期刊,供诸位正确选择和阅读参考,免费论文版权归原作者所有,谨防侵权。联系邮箱:256081@163.com