当前位置: 网学 > 编程文档 > DELPHI > 正文

Delphi常用COM组件速查手册

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/07/30

本文主要为广大网友提供“Delphi常用COM组件速查手册”,希望对需要Delphi常用COM组件速查手册网友有所帮助,学习一下!


COM(Component Object Model,即组件对象模型)是微软公司为使软件开发趋于人性化而开发的一种新技术,该技术在Windows平台上已得到日益广泛的应用,并逐渐成为建立组件及通过组件建立应用程序的规范。在COM构架下,开发者可编制各类功能专一的组件,然后将其按需组合,构成复杂的应用系统。 一、COM基础1.什么是COMCOM是开发软件组件的一种方法。组件是一些小规模的二进制可执行程序,为应用程序、操作系统及其他组件提供服务。多个COM对象可连接并形成应用程序或组件系统。组件在运行期可不被重新链接或编译而进行卸载或替换。COM同时也是一个建立动态组件的规范,COM规范是一套为组件架构设置标准的文档规范。 COM的发布形式一般为Win32动态链接库(DLL)或可执行文件(EXE)。COM组件采用动态链接的方法调用且完全和开发语言无关,同时COM组件可借助二进制的形式发布,并可在不影响使用的情况下升级为新版本。为实现组件的动态装入和卸载,所有的组件必须满足:(1)组件必须动态链接,这是重要的要求。(2)组件必须隐藏或封装其内部实现细节,这是动态链接的必要条件。微软推出Windows 98系统后,整个操作系统的核心均围绕COM建立,因此可将Windows系统看作一系列的COM接口,在需要时调用这些接口的相应功能即可。2.COM术语(1)接口:是包含函数指针数组的内存结构。每个数组元素包含一个由组件所实现的函数地址。COM接口即为该内存结构。对于客户程序,组件是接口集,可通过接口访问COM组件。(2)创建:组件的本质为DLL中实现的接口集。在客户获取某个组件接口指针前,需要先将相应的DLL装载至其进程空间中,并创建该组件。(3)复用:COM组件可被复用,并支持接口继承。该继承指一个类继承其基类的类型或接口。在COM中可用包容和聚合来对组件进行改造。其中:包容:包容在接口级完成。外部组件包含指向内部接口的指针,也可通过将调用转发至内部组件的方法来重现内部组件所支持的某个接口,且外部组件还可在内部组件中添加代码,并对接口进行改造。聚合:聚合是包含的一种变化形式。当外部组件聚合某个内部组件的接口时,其并未重现该接口并将调用请求转发至内部组件。使用该方法,外部组件将无需重现并转发接口中的所有函数。3.常用COM组件Windows系统提供的常用COM组件包括FSO、WSH、ADO和XML组件,此外很多常用软件也提供COM接口,如Office、IE、FlashGet和NetAnt等。二、COM组件的基本使用方法在Delphi 6中调用COM组件首先必须在“Uses” 单元中声明对COM组件的应用,代码如下;Uses Comobj;一般使用Variant型变量来获取创建的COM组件句柄,因此还需声明对Variants单元的引用,代码如下:Uses Variants;声明相关的单元引用后,在Delphi 6中可通过CreateOleObject函数来创建COM组件的实例,该函数的语法和说明如下:语法:function CreateOleObject(const ClassName: string): IDispatch;说明:该函数用于创建COM组件的实例,其中ClassName为字符型参数,代表需创建的类名,即该COM组件的Class ID(CLSID)。每次调用CreateOleObject后,均会创建一个对象新实例并返回对该COM组件的接口引用,开发者可通过该接口来控制 COM组件并调用组件提供的方法和属性。如开发者将通过CreateOleObject函数创建的COM组件实例赋予一个Variant型变量, 那么可通过将该Variant型变量赋予Unassigned常量值来释放该COM组件实例。综上所述,在Delphi 6中使用COM组件的基本步骤如下:(1)声明相关单元的引用(Comobj和Variants单元)。(2)创建Variant型变量。(3)通过CreateOleObject函数创建COM组件实例并将其赋予Variant型变量。(4)通过接口,控制COM组件实例进行相关操作。(5)完成操作后,将Variant型变量赋予Unassigned常量,释放COM组件

网学推荐

免费论文

原创论文

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