- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10 章 高级组件设计
第 10 章将示范一些高级技巧,使得可以创建种类更多的组件,并更好地控制组件的工作方式。高级
组件设计包括如何动态装载资源以创建出色的图形化控件、怎样公开被拥有的组件——Delphi 6 所引入的
新技术、创建对话框组件,持久化非公开特性,以及如何创建特性编辑器。
公开被拥有的组件可以节省很多工作,而且可以比以前的Delphi 版本更加易于创建由许多控件衍生出
来的组件。
10.1 动态装载资源
像TMediaPlayer (如图10.1 所示)一样具有专业外观、富于吸引力的控件需要动态创建组件,并在创
建组件时将图形资源装载到组件中。在第9 章中,您已经学会如何使用Image Editor 来创建Delphi 组件资
源(dcr )文件。如果把24 ×24 像素的位图命名为与类相同的名字,并将DCR 文件存储为与组件单元文件
相同的名字——当然,扩展名是不同的;这样,在把单元添加到包的时候,Delphi 将自动地装载相应的
DCR 文件。这时,这些位图将显示在VCL 面板代表对应组件的按钮上(细节可以参考9.7.1 节“用Image
Editor 创建组件资源文件”)。
图10.1 TMediaPlayer 组件的外观非常专业,它使用了位图,
在运行时从资源文件中动态装载(图中所示的speedis.avi
与Delphi 一同发布,位于demos\coolstuf 文件夹下)
通过将额外的光标、图标和位图添加到同一DCR 文件中,Delphi 会把这些资源文件编译到组件的.DCU
文件中,并将其链接到.bpl 库(请记住:BPL 是一种特定的动态链接库)。将组件编译到包中之后,资源
可以通过API 过程访问,并使用组件方法来装载。通常具有资源装载方法的组件会包含代表资源的对象,
如TSpeedButton 的Glyph 特性。
在数据库应用程序中通常会遇到的可视化结构是包含四个按钮的可视化控件(如图10.2 所示),按钮
用于在左右两栏之间来回移动相应的项。如图10.2 所示的控件相当有用,可以用于几个窗体或工程,具有
明显的累积效应。本节将使用TButtonPanel 组件来示范如何动态地装载源,在下一节讨论如何公开被拥有
的组件。
第10 章 高级组件设计 239
图10.2 按钮导航组件。方向箭头表示移动方向
注意:有一个谜语是这样的:您愿意现在得到一百万美元,还是第一天得一美分,以后每一
天的钱是前一天的两倍,连续 30天呢?答案当然是后一个。直到第 20天到第 30天之间时,
才能看出累积的效果,最后的结果非常巨大,有美元。使用组件来建立应用程序
的效果与此类似。最初的效应并不明显,但累积到最后的结果是惊人的。
图 10.2 中显示的组件使用了由TMediaPlayer 组件得到的位图。在组件中使用资源的第一步是将其加
入到Delphi 组件资源文件,即DCR 文件中。TButtonPanel 组件的单元名是UButtonPanel.pas 。因此,DCR
文件是UButtonPanel.dcr ,而且与组件单元位于相同的目录下。四个按钮可以用TSpeedButton 组件来实现。
TSpeedButton 具有Glyph 特性,可用于图像。Glyph 可以是位图;如图10.2 所示,共有四幅位图。
10.1.1 创建Delphi 组件资源文件
Image Editor 可用于为TButtonPanel 组件创建位图资源。按下列步骤可创建DCR 文件。
1.从Delphi 的Tools 菜单中启动Image Editor 。
2 .在Image Editor 中,单击File ,New ,Component Resource File 菜单项以创建资源文件。
3 .选择Resource ,New ,Bitmap 菜单项,并接受缺省的大小和颜色来创建四个位图(缺省的大小是
32 ×32 像素和16 色 VGA 模
文档评论(0)