Delphi ActiveX控件使用实例.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Delphi ActiveX控件使用实例 ActiveX 控件 使用 实例
- 资源描述:
-
Delphi ActiveX控件使用实例 1. ActiveX控件简介 ActiveX控件也就是一般所说的OCX控件,它是ActiveX技术的一部分。 ActiveX控件可以被集成到很多支持ActiveX的应用当中去,或者直接用来扩展应用的功能,这些支持ActiveX的应用包括C++ Builder、Delphi、Visual dBASE、 Visual Basic、Visual C++、Internet Explorer、Netscape Navigator等。 简单的说,ActiveX技术可以使多种编译器中众多的控件得到互用,比如说:我可以将Delphi中的控件打包为ActiveX控件后然后加载到Visual C++中进行使用,这样在VC中也可以使用Delphi中的这些控件来实现相应的功能了。 2. ActiveX控件相关知识 在Delphi中,一个ActiveX控件由如下几个部分组成:VCL(可视化构件库)控件、属性、方法、事件,以及一个或者多个相关的类型库。 2.1、VCL构件 在Delphi中,一个ActiveX控件是由一个或者多个VCL构件经过包装以后得到的。所以,要使用Delphi来开发ActiveX控件,必须先得开发出或者选择要进行包装的VCL构件。也正是由于这个原因,我们可以将Delphi里大量优秀的VCL构件包装成ActiveX控件,从而可以在别的不能够直接使用VCL构件的开发工具(如Visual Basic、Visual C++)里也能够使用到这些控件啦! 但是,在Delphi里可以用来做ActiveX控件的VCL构件必须是TWinControl的后代。如果想用一个TGraphiControl的子类做ActiveX控件,在大多数情况下只需要把它的基类变为TCustomControl即可。有的VCL构件是被注册成非ActiveX控件的,例如 EditControl,这些控件也不能做ActiveX控件。 2.2、类型库 类型库包含了控件的类型定义信息,提供了比接口更多的详细信息,是控件向它的宿主程序提供服务信息的一种途径。类型库的目的是为其他应用和编程工具提供关于它包含的构件对象的信息。开发ActiveX控件时,Delphi把类型库信息存入一个.TLB文件中及一个对应的Pascal文件.res(.TLB文件的Pascal语言版本),编译时类型库将作为资源链入DLL或者EXE中。 类型库的元素包括: (1)类型库信息:包括类型库的总体信息和特征、当前类型库引用的其它类型库信息; (2)构件类:代表整个ActiveX控件,包含了提供给客户应用的接口; (3)接口属性和方法、事件; (4)枚举类型:一种用作数据类型的相关常量,可以用在类型库的其他地方定义属性和方法。 图1 类型库编辑器 Delphi提供了一个类型库编辑器,用于观察或修改类型库,见图1 (在Delphi中选择File->open,然后打开相应的.TLB文件,就会自动调用该类型库编辑器进行查看)。可以使用它来增加、修改、删除类型库的各种元素。从图1类型库的界面上可以看到,左边是一个树形结构,各种元素的成员作为子节点出现;右边是根据左边所选中的元素类型显示不同的页签,可以对该元素的一些属性进行编辑。 2.3、属性、方法和事件 在打包为ActiveX控件后,原有VCL构件的属性、方法和事件自然就变成为ActiveX控件的属性、方法和事件。控件的属性指颜色、标签等;控件的方法是请求控件执行某些动作;控件的事件则是控件给宿主程序的一个通知。 2.4、属性页 ActiveX控件所带的属性页可以让控件的使用者查看和修改控件的属性。您可以把几个属性捆绑在一个属性页上,也可以只为一个属性提供一个属性页。 2.5、Active Form 在Delphi中,ActiveForm是封装了Delphi Form的一种ActiveX控件。ActiveForm其实是一种标准的Delphi From(ActiveForm继承自TForm)。ActiveForm中可能会包含某些VCL或者ActiveX组件,包括用户自定义的组件。 就像“标准的”Windows应用程序一样,我们也可以向ActiveForm中添加代码以及对事件作出应答。唯一的区别是,ActiveForm的标题栏(title bar)在运行时是不可见的,只是在设计时才可见。 3.Active Form实例 下面我们以ActiveForm作为实例来说明Delphi中ActiveX控件的创建和使用。 3.1 创建一个ActiveX Form Delphi提供了ActiveForm向导工具来增强ActiveForm的创建过程。该向导会创建一个ActiveX library项目来包含ActiveForm和一个可定制的激活的Form窗口。(该窗口是ActiveForm类型,而非TForm类型,虽然ActiveForm继承自TForm) 要创建一个ActiveX控件(在本例中为ActiveForm控件),我们需要在Delphi中点击 File->New,然后选择ActiveX选项卡,接着双击ActiveForm图标即可。对于本例,如图2,点击"OK"接受默认的ActiveForm名称(New ActiveX Name)和执行单元名称(Implementation Unit)。这样向导就为我们自动创建了一个ActiveX Library 工程,一个类型库,一个Form窗口,一个执行单元以及一个包含了所有这些类型库说明信息的单元文件(.TLB文件)。 图2 Active From创建向导 3.2 添加一些简单的控件和代码 一旦ActiveForm被创建,我们就可以从组件面板中向其内添加各种想要的控件。本例中,为简单起见,我们只添加一个文本框控件(TEdit:edt1)和一个按钮(TButton: btn1) 如图3: 图3 Active Form包含的VCL控件图 接下来,我们向按钮TButton的OnClick事件中添加如下代码: procedure TActiveFormX.btn1Click(Sender: TObject); begin ShowMessage(edt1.text); end; 3.3 Active Form 的部署和调用 接下来,让我们看看我们创建的Active Form的效果,并且在其它应用程序中调用该Active Form。 3.3.1 通过Web部署(Web Deploy) 预览Active Form的效果 通过Web部署,我们可以通过浏览器快速查看我们创建的ActiveX控件的效果。不过之前我们必须对Web部署的相关属性进行相应设置。 3.3.1.1 Web部署 想要在网页中使用ActiveForm控件,你必须先设置Web部署属性。要部署ActiveForm项目,首先必须对Web部署属性进行适当的设置,然后还要编译项目。在Delphi中选择Project->Web Deployment Options,将打开如图4所示的Web部署属性对话框。部署一个简单的ActiveForm是非常简单的,你只需在Project标签页中输入相应的数据即可。(为简单起见,本例中其它选项的使用默认值) 图4 Web部署属性设置示意图 如图4, 为简单起见,我们将部署后的HTML(HTML Dir) 文件和OCX文件(Target Dir)设置为同一个目录,同时目标URL(Target URL )只需简单的输入''./''来表示使用当前目录。 接着,选择Project ->Web Deploy对该项目进行Web部署,那么Delphi就会在上述设置的部署目录中生成一个OCX文件和一个用于测试该ActiveForm的相应的HTML页面文件。 3.3.1.2 预览效果 现在,我们只需打开上述设置的Web部署目录中生成的相应的HTML文件即可查看该ActiveForm的运行效果了。 图5 Active From Web部署效果展示图 如图5,更改文本框中的内容后点击按钮,就会弹出一个包含你刚才在文本框中输入内容的消息框。 3.3.2 ActiveForm的调用 上面,我们已经通过Delphi自带的Web部署功能快速查看了我们刚创建的Active Form的演示效果。现在,我们将在其它项目中该ActiveForm控件。 3.3.2.1 编译生成OCX文件 如果你使用了上面提到的Web部署工具查看了该Active Form的运行效果,那么在Web部署的过程中,Delphi已经自动对该ActiveForm项目进行了编译,并且在如图4所示指定的Web部署目录中生成了相应的OCX文件。这里,我们生成的是ActiveFormProj1.ocx。 如果你没有使用如上的Web部署工具查看该Active From的效果,你也可以简单的通过编译项目(Project->Compile *** 或按Ctrl+F9)来创建该OCX文件。如果编译没有发生错误,那么在工程的根目录下你也可以发现该OCX文件(ActiveFormProj1.ocx). 3.3.2.2 注册Active Form 要想在其它项目中调用我们刚创建的Active Form,我们必须先将其注册到Windows消息系统中,然后还要将其添加到Delphi的VCL类库中,这样在其它项目中才能找到该Active Form控件并进相应的使用。 图6 注册Active Form对话框 点击Component->Import ActiveX Control, 将会打开Import ActiveX 对话框(如图6),点击"Add"后在弹出的文件选择对话框中定位并选中我们刚生成的Active Form控件ActiveFormProj1.ocx,点击”打开”后,Delphi将会自动载入该ActiveX控件。如图6所示的Import ActiveX对话框也进行了相应的改变。 注意 该操作只是向Windows消息系统注册了该ActiveX控件(ActiveFormProj1.ocx),我们还可以通过如下方法向Windows消息系统注册该ActiveX控件: ? 在命令行(MS-DOS)下定位到ActiveFormProj1.ocx文件所在目录,然后使用“Regsvr32 ActiveFormProj1.ocx ”注册该ActiveX控件 ? 在Delphi中,打开创建该ActiveX控件的工程(*.dpr)文件,然后选择Run->Register ActiveX Server 注意,以上操作只是向Windows消息系统注册了该ActiveX控件,但是并没有将其添加到Delphi的VCL库中。所以我们还无法在其它程序中对其调用。要想在其它程序中能调用该ActiveX控件,我们还需要进行如下设置和操作。那么,我们的ActiveX控件将会出现在Delphi的组件面板中,这样我们在其它程序中才能像使用其它VCL控件一样使用我们刚才创建的ActiveX控件(Active Form)。 如图6,最上面显示了载入的ActiveX控件的名称、版本号和源文件路径。 ? Class names: 表示该ActiveX控件在Windows消息系统中的注册名称,默认为载入的Active Form的类名称,你可以根据需要进行更改。 ? Palette page: 表示将该ActiveX控件加载到Delphi组件面板中的哪个面板,默认为ActiveX面板。我们这里加载到默认面板Standard面板中。 ? Unit dir name: 表示将该ActiveX控件加载到哪个目录中,默认为".\Borland\Delphi7\Imports\",最好放在Delphi的Search Path中,否则在使用中可能会发生无法找到文件错误。 ? Search path: 表示Delphi的查找目录。如果上述的"Unit dir name:"指定了其它的目录,在这里,我们也应该添加相应的目录。 图7 控件添加位置选择对话框 以上设置完成以后,我们点击"Install"按钮将该ActiveX控件添加到Delphi的VCL库。 点击"Install"按钮后,会弹出如图7所示的Install对话框,让我们选择将该ActiveX控件添加到哪个包中。如图7,默认的选择是注册到已有包(Into existing package)“\borland\delphi7\Lib\dclusr.dpk”中,我们也可以点击"Browse..."按钮选择其它已存在的包文件(*.dpk),或者切换到"Into new package"面板创建一个新的包文件(*.dpk); Descripiton表示对该包文件的说明。 注意 点击"Install"按钮将该ActiveX控件添加到Delphi的VCL库实质是: 首先,将ActiveX控件的3个相关文件“ActiveFormProj1_TLB.dcr”、“ActiveFormProj1_TLB.dcu”、“ActiveFormProj1_TLB.pas”拷贝到Delphi安装目录下的Imports t文件夹(“\Borland\Delphi7\Imports”)中。如果文件已经存在,会给出“文件已存在,是否替换”的提示信息。 其次,将控件信息添加到我们指定的包中,然后重新进行编译,使新加入到ActiveX控件出现在Delphi的组件面板中 这里我们全部使用默认设置,将我们的Active Form控件添加到默认的”\borland\delphi7\Lib\dclusr.dpk”文件中。设置完成以后,点击"ok"按钮。将会出现如图8所示的Package管理器,同时弹出如下信息对话框:“Package dclusr.bpl will be rebuilt, Continue?”,意思是说dclusr.bpl文件将会重新被编译。如果你在前面指定将我们的Active Form加载到其它包或者自建的新包中,这里也会有相应的提示信息。 图8 Package管理器 点击”OK”按钮后,又会出现如图9所示的提示信息: 图9 Active Form添加成功信息 该信息框的意思是已经成功向Delphi的默认面板dclusr70.bpl文件中注册了新的控件ActiveFormProj1_TLB.TActiveFormX。同时,在Delphi的Standard面板中,我们会发现新增了一个为ActiveFormX的组件。如果没有出现,你可以点击如果8所示的Package管理器左上角的Compile按钮重新编译一次以后应该将可以看到了。 自此,我们成功将我们先前创建的Active Form控件添加到了Delphi的组件面板中,下面,我们就可以在其它应用程序中对其进行调用了。 3.3.2.3 调用Active Form 控件 在上面的操作中,我们已经成功的将我们之前创建的Active Form控件添加到了Delphi的组件面板中,以后 我们就可以像使用其它的VCL控件一样使用我们添加的Active Form控件。 在Delphi中,点击File->New->Application创建一个新的应用程序,然后在其默认创建的Form窗口中添加我们刚添加的Active Form控件,效果如图10所示。 图10 Active Form控件调用效果图展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




Delphi ActiveX控件使用实例.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/7009202.html