admin 管理员组文章数量: 1086019
2024年3月18日发(作者:python菜鸟代码大全)
维普资讯
Vo1.40
吉林大学学’报(理学版)
No.4
2 0 0 2年10月
JOURNAL OF JILIN UNIVERSITY(SCIENCE EDITION)
38O~382
研究简报
基于Delphi的ActiveX控件的开发与应用
王恩德 ,刘国斌
(1.吉林大学计算机教学中心,长春130023;2.吉林大学财务处,长春130012)
提要:针对ActiveX控件的开发与应用,阐述了ActiveX的编程思想,并通过Delphi语言创建
和应用控件的原理,总结了控件与VCL组件之间的区别以及它们各自的优缺点,最后给出
控件在多级分布式Web体系结构中的一个应用实例.
关键词:ActiveX控件;Delphi;OLE;COM
中图分类号:TP31 文献标识码:A 文章编号:1671—5489(2002)04—0380—03
随着计算机技术的发展,软件系统的开发已经改变了滞后于硬件系统开发的历史,这是因为软件
系统开发可以象硬件系统开发那样,在设计一个新系统时尽量使用已包装好的元件,每个元件通过其
特定的接口提供互连功能,按照一定的逻辑关系把它们集成在一起,从而简化设计过程,提高工作效
率.目前,在软件开发中所采用的ActiveX技术就体现了这种思想.本文在论述ActiveX控件编程技术
的基础上,介绍了Delphi如何创建ActiveX控件,以及如何应用ActiveX控件开发软件系统的方法,并
给出ActiveX控件在多级分布式Web体系结构中应用的实例.
1用Delphi创建ActiveX控件
ActiveX控件是在不同软件中和网络的不同计算机上可共享的、可重复使用的软件包,其文件的
扩展名为.OCX,它与开发平台无关.在一种编程语言上开发的ActiveX控件可以无需作任何修改,即
可在另一种编程语言中使用,其效果如同使用Windows通用控件一样.它也可以作为小程序下载装入
网页上,与JAVA applet的概念和功能相似.Microsoft的ActiveX技术实际上是在OLE(Object
Linking and Embedded,对象的链接与嵌入)和COM(Component Objiect Module,组件对象模型)/
DCOM(Distributed COM,分布式组件对象模型)这些技术的基础上发展起来的.
目前,ActiveX控件发展很快,主要是由于编程的需要、市场的需要L1]和制作动态网页的需要 ].
在过去要创建一个ActiveX控件是相当复杂的,但是现在可以使用Delphi能很轻松地实现这项工
作.Delphi以其简洁的编程语言、功能强大的组件和灵活方便的编程环境在市场竞争中越来越得到人
们的重视,同其它软件开发工具相比,在许多方面都有一定的突破,特别是创建ActiveX控件功能,它
是Delphi最重要的功能之一.使用Delphi创建的控件有两种,一种是把丰富的VCL(可视组件库)组件
转换成ActiveX控件,另一种是把窗体转换成ActiveForm.从本质上讲,ActiveForm也是ActiveX控
件,但一般的ActiveX控件是单一的控件,即它只能从一个VCL组件转换而来.而ActiveForm需要有
一
个Form容器,包容一个或多个VCL组件,然后把该窗体转换为一个复合的ActiveX控件,它通常
用于Internet上的分布式多层应用软件开发.下面是这两种控件f ̄g,J建过程:
(1)创建ActiveX控件.当使用单个VCL组件创建一个简单ActiveX控件时,需要把新项目的类
型确定为ActiveXControl,并打开创建向导对话框,按需求设置有关选项内容.设置后创建向导自动生
成了一个控件项目文件.DPR,其中包括控件类型库文件.PAS和控件实现单元源代码,经编译器编译
这些文件后,在默认目录下生成控件文件.OCX,用户无需编写任何代码,就可实现对应组件的
AetiveX控件创建任务.如果控件作为产品发布,为了保护知识产权,可在创建时附加许可钥匙,并产
生一个许可文件.LIC.如果2是合法用户,则发布控件时需要连同.OCX文件一起发布到用户机器上,
收稿日期:2002 05—09.
作者简介:王恩德(1 948~).男,教授.从事计算机应用的研究,E—mail:gaotm@public.CC.j1.cn
维普资讯
王恩德等:基于Delphi的ActiveX控件的开发与应用 38l
这样当控件用于开发软件时才会创建控件的实例.在编译时,许可钥匙会嵌入到该软件中,因此运行
软件时就不需要LIC文件.控件的属性页提供了通过一个对话框修改控件属性的方法.Delphi有一些
标准属性页,如:颜色属性页、字体属性页、图象属性页、字符串属性页等,使用时可用鼠标右键单击
控件实例,在弹出的快捷菜单中,选择相应项则可打开对应的修改属性对话框.如果控件需要使用标
准属性页,则可将StdVcl40.dll文件和OCL文件一起发布给用户,并保证它们在用户机上正确注册.
Delphi还容许给某属性自定义属性页、在控件中包含版本信息和About框等一些复杂的操作.
(2)创建ActiveForm.当使用单个或多个VCL组件创建一个复合ActiveX控件时,需把新项目的
类型确定为ActiveForm,并打开创建向导对话框,按需求设置有关选项,一般取它们的默认值后,进
入ActiveForm窗体,按需要装载相应的VCL组件、设置属性、编写事件代码等操作.如果该窗体要嵌
入Web页中使用,在编译之前需设置有关Web发布的选项,通常需要指定该控件文件在Web服务器
上的路径、指定该控件文件在Web服务器上的URL、指定一个包含调用控件的HTML文件的路径
等,选择是否将OCX及其相关的文件压缩成一个CAB文件、是否要求包含版本号、是否要求自动增
加项目的发表号、是否要求同时发布OCX需要的包、是否要同时发布其它相关文件等.经编译器编译
后生成.OCX文件和一个包含调用.OCX文件的HTML文件(.HTM).最后,使用Web发布命令,将
编译生成的OCX文件和HTML文件分别放到设定好的目录中,供用户通过www浏览器下载.也可
以自己打开www浏览器来显示生成的HTML页面.
2在Delphi中应用ActiveX控件
2.1 加载共享控件 如果在应用软件中使用来自Delphi之外的共享控件,首先按照控件的说明
在本系统注册,再把控件加载到VCL组件面板上.当对应控件图标出现在组件面板上时,就可像其它
VCL组件一样把它拖放到窗体上使用.在Delphi中加载控件时,系统容许选择已经注册的控件进行加
载,对未注册控件,可选择系统提供的注册功能先进行注册,也可把已注册的控件从系统中注销.当
选定已注册的控件后,还需指定封装OCX的类名、组件面板上的页标签、单元文件名、搜索路径等.
另外,还需选择一个现成的包或新建一个包安装该控件.通常选默认值就可完成控件的加载.
2.2 发布应用软件 当要发布带有控件的应用软件时,要注意带上控件的OCX文件和一些相关
文件.为了方便用户安装软件,可以使用其它软件生成一个安装程序.使用InstallShield可以制成专业
级的安装程序,它可以在安装软件时自动注册其中的控件,也可以在卸载软件时,自动注销以前注册
的控件.用户按照InstallShield的向导,进行安装程序的制作,进行到最后一步,点击Finish后,
InstallShield将进行下一步的详细定制.选择File Groups选项,将其中包含需要自注册ActiveX控件文
件项的Self—Registered属性改为yes后,就可以完成软件安装程序的制作.
2.3 运行应用软件 当用户第一次运行带有控件的应用软件前,其中的控件必须在系统注册表
中注册.如果使用InstallShield生成的安装程序,则可以在安装软件的同时,控件自动注册,否则使用
regsvr32.exe程序手工进行注册.这是一个命令行的工具程序,执行下列命令即可注册:
C:\Windows\system\regsvr32<控件路径和控件文件名>
如果想要解除某个控件注册,可在regsvr32后面加一个参数“/“”.
3 ActiveX控件在Web上的应用
多级分布式Web体系结构可划分为表示层(客户机层)、功能层(应用服务器层)和数据层(数据库
服务器层)L3].其中应用服务器层是应用逻辑业务处理的核心,是连接客户和数据库服务器的桥梁.每
个客户通过浏览器浏览能够提供交互界面的动态网页,用户的需求信息通过网页传递到应用服务器,
再由应用服务器直接访问数据库服务器,访问的结果再按相反的方向传递到用户.在多级分布式Web
体系结构的表示层中,直接面向客户的是IE和Netscape浏览器以及在各自平台上运行的动态网页.
为了增强动态网页的开发,目前,有JavaScript和VBScript语言,这两种语言不仅编程难度大,而且
IE只能支持VBScript,JavaScript的有些标记在IE的某些版本中不被支持,因此所开发的动态网页的
通用性较差.然而,微软的IE全面支持ActiveX.同时,微软提供了Netscape的插件(Plug—In),从而
使Navigator也可以浏览包含有ActiveX部件的Web站点,故不存在兼容问题L4].
维普资讯
382 吉林大学学报(理学版)
我们开发的“吉林大学学科建设资金管理系统”,采用多级分布式Web体系结构.在客户层应用
Delphi的ActiveX控件技术,开发了交互式的用户操作界面(图1),用户通过IE浏览器查寻专业代码
和名称,按学科和专业级别可得到对应专业的代码和名称,以便进一步查询相应经费.ActiveForm的
源程序是由Delphi自动生成的,并经编译后生成了控件文件(.OCX)和HTML文件(.HTM).
在HTML文件中,使用OBJECT标签插入ActiveX,其中classid给出了代表控件的惟一编号;
codebase指出了控件的文件路径或URL.客户端浏览此页面时,先在本地的注册表中查找该classid,
如果存在,则不必下载.否则,必须按照codebase指定的路径搜索该控制并下载.
<HTML>
(HI>学校专业编号查询(/HI>(p>
按专业所属学科分级查找,选“确定”按钮即可得到对应
专业编号.
(HR>(center>(P>
(OBJECT
classid一“clsid: A33D1243—5B48—46F5—852C一
9F6493COBEBA”
codebase一“file://d:/wnd/aaa/ActiveFormProj1.
OCX#version一6,0,6,163”
width==690
height==455
align:=center
hspace==0
vspace==0
>
</oBJECT>
</HTML> Fig.1 Operating the window al ternatel y
综上,只要掌握Delphi创建控件功能,用户几乎可不写 of running on IE
代码,就能自动生成如此复杂的网络程序,不过在具体实施时还要注意以下问题:(1)控件用于Web
页时,创建的控件一定要精炼,否则会影响用户浏览时的速度;(2)要提供灵活便利的控件注册方法,
最好选择自动注册方式;(3)在控件发布时,必须要有相应的说明资料,以指导用户正确使用.
参考文献
[1]文亚栋.软件项目的风险管理EJ].计算机系统应用.2002,(2):72~73.
[2] 张红军.刘育楠.顾水忠等.动态网页制作精粹[M].北京:清华大学出版社,2001.1 3~l 5.
[3]宋晓梁,刘东生.许满武.中间件及其三层客户机/N务器模型中的应用EJ].计算机应用,2002.(1):53
[4]郑成增.陈志峰.王延珍等.Web数据库技术分析研究EJ].计算机工程与应用.2000.36(8):lO6~lO8.
Devel opment and Appl ication of ActiveX Control l er
Based on Delphi
WANG En—de ,LIU GUO—bin。
(1.Computer Education Center of Jilin University.Changchun l 30023.China;
2.Office of Financial Affairs of Jih'n Uniz,ersity.Changchun l 3001 2,China)
Abstract:The present paper describes the application of ActiveX controller,and through the principle of
creating and applying the controller of Delphi,summarize the distinction between controller and VCL
component and,the advantage and defect of them.At last,we give a exemplar of controller in the multi—
class discrete Web system.
Keywords:ActiveX controller;Delphi;OLE;COM
版权声明:本文标题:基于Delphi的ActiveX控件的开发与应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710771268a572278.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论