- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 自定义组件与ActiveX组件 10.1 组件与包 10.2 自定义组件范例 10.3 ActiveX组件与ActiveForm 习题 10.1 组 件 与 包 本节介绍BCB组件的一些基本特征以及开发组件的基本步骤。因为组件通常存放在包(Package)中,所以我们还要介绍一点有关包的知识。 10.1.1 组件是特殊的类 组件在BCB中被定义为类,与一般的C++类相比,组件类有以下特点: (1) 组件类除了拥有数据成员和方法外,更多地使用属性和事件。 (2) 组件类的对象(特别是可视组件对象)除了在程序的运行阶段能正常工作外,还要在程序设计阶段具有一定的交互能力,因此它们具有复杂而精巧的结构。 (3) 组件类在类的声明部分除了具有一般C++类具有的private、public、protected段外,还有__published段,该段下的成员在程序设计阶段可以用Object Inspector进行编辑。 (4) BCB的基础是VCL,所有的组件类都是由VCL中少数几个基类派生的。 (5) 组件类要经过注册和安装才能使用。 BCB组件类具有用C++语言写成的源代码。通常,一个组件类的源代码由两个与组件类同名的文件组成,其中一个是头文件(扩展名.h),用于保存有关类成员的声明;另一个是单元文件(扩展名.cpp),用于保存有关类方法与属性的具体实现。如果该组件有一个专用的图标(用于在组件面板上显示),那么该图标文件也应与组件类同名,扩展名为 .dcr(用BCB的Image Editor可生成该类文件),这些文件应放到同一个目录下。 10.1.2 组件的注册与安装 BCB的组件类必须经过编译、注册与安装过程方能使用。经过编译的组件存放在包(Package)中,一个包可以存放许多组件。注册与安装都可以用IDE的菜单命令完成,用户不必了解其实际过程。组件类在完成注册与安装后,就会出现在组件面板上。如果组件没有自己的图标,IDE会为其指派一个图标(通常为该类祖先的图标)。 10.1.3 包的建立与管理 包(Package)在BCB中的作用很大,本质上包就是DLL (动态链接库),但其中含有一些只有BCB能识别的格式,它的扩展名也不使用一般DLL常用的 .dll而是用 .bpl。 通常BCB在包里放入经过编译的组件,一个包里面可以放许多组件。IDE提供的有关工具可以方便地从包中动态地存入或取出组件。BCB的包可以分为运行时包与设计时包,通常前者尺寸较小,但仅能用于支持应用程序的运行,而后者则还能用于支持在BCB IDE中进行程序设计。 BCB自有的组件大部分都存放在C:\Windows\System下的一组.bpl文件中,其中最主要的是Vcl60.bpl,这些 .bpl文件是在BCB安装时复制到System目录的运行时包。BCB编译器可设置(执行Project→Options菜单命令设置)是否在链接时将存放在运行时包中的代码加入到 .exe文件中。如果设置成不加入包中的代码,则生成的 .exe尺寸较小,但必须在目标机器上复制运行时包(或安装BCB),在编译器缺省状态下程序中不会加入运行时包代码。 定义包时使用的源文件具有扩展名 .bpk,与此相关的还有一个同名的 .cpp文件。包的源文件经编译后即成为 .bpl文件,对修改后的包应重新编译一次。 由用户自定义的组件可以存放到BCB现有的某个包中,也可以放入到一个新建的包中,通常在创建自定义组件时BCB会缺省提供一个名为DCLUSR60的包。 新建一个空的包很容易:先执行File→Close All,关闭当前项目和其它一切文件,再执行File→New→Other命令,并选择位于“New”页上的Package图标即可自动生成文件,默认的文件名为Package1、Package2 此时,BCB打开一个称为“包管理器”的窗口,有关包的操作都可以在该窗口下进行,如图10-1所示。 在包管理器窗口中右击Package1.cpp,执行快捷菜单上的“Open”命令打开源文件,可以看到以下的代码: #include basepch.h #pragma hdrstop #pragma package(smart_init) // //Package source // #pra
文档评论(0)