通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
资源搜索:
热门搜索:Linux VB C语言 PhotoShop Flash TCP/IP
   首页 | 文章 | 软件 | 动画 | 资源 | 励志 | 骗术 | 论坛 | 邮箱 | 会员中心 | 军事 | 科技 | 博客 | 图片 | 商城 | 最新更新 | 800g资源 | 爱心黑客
您现在的位置: 爱国者黑客 >> 资源 >> 程序设计 >> Delphi语言 >> 编程技巧 >> 文章正文
Delphi自定义部件开发(三)
责任编辑:admin   更新日期:2005-8-6

19.2.2 Delphi部件编程 

19.2.2.1 创建属性 

 属性(Property)是部件中最特殊的部分,主要因为部件用户在设计时可以看见和操作它们,并且在交互过程中能立即得到返回结果。属性也很重要,因为如果将它们设计好后,将使用户更容易地使用,自己维护起来也很容易。

  为了使你在部件中更好地使用属性,本部分将介绍下列内容:

 ● 为什么要创建属性

  属性的种类

 ● 公布(publishing)继承的属性

  定义部件属性

  编写属性编辑器

 

  1. 为什么要创建属性

  属性提供非常重要的好处,最明显的好处是属性在设计时能出现在Object Inspector窗口中,这将简化编程工作,因为你只需读用户所赋的值,而不要处理构造对象的参数。

  从部件使用者的观点看,属性象变量。用户可以给属性赋值或读值,就好象属性是对象的域。

  从部件编写者的观点看属性比对象的域有更强的功能;

  用户可以在设计时设置属性

  这是非常重要的,因为不象方法,只能在运行时访问。属性使用户在运行程序之前就能定制部件,通常你的部件不应包含很多的方法,它们的功能可以通过属性来实现。

  属性能隐藏详细的实现细节

  属性能引起简单地赋值之外的响应,如触发事件

  ⑷ 用于属性的实现方法可以是虚拟方法,这样看似简单的属性在不同的部件中,将实现不同的功能。

 

 2. 属性的类型

  属性可以是函数能返回的任何类型,因为属性的实现可以使用函数。所有的Pascal类型,兼容性规则都适用属性。为属性选择类型的最重要的方面是不同的类型出现在Object Inspector窗口中的方式不同。Object Inspector将按不同的类型决定其出现的方式。

你也能在注册部件时描述不同的属性编辑器。

  下表列出属性出现在Object Inspector窗口中的方式

 

19.3 属性出现在Object Inspector窗口中的方式

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

属性类型       处

───────────────────────────────────────

简单类型   NumericCharacter String属性出现在Object Inspector中,用户可

以直接编辑

枚举类型 枚举类型的属性显示值的方式定义在代码中。选择时将出现下拉  

式列表框,显示所有的可能取值。

集合类型 集合类型出现在Object Inspector窗口中时正如一个集合,展开后,用         

户通过将集合元素设为TrueFalse来选择。

对象类型 作为对象的属性本身有属性编辑器,如果对象有自己的published

性,用户在Object Inspector中通过展开对象属性列,可以独立编辑它们,

对象类型的属性必须从TPersistent继承。

数组类型 数组属性必须有它们自己的属性编辑器,Object Inspector没有内嵌对数

组属性编辑的支持。  

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

3. 公布继承的属性

  所有部件都从祖先类型继承属性。当你从已有部件继承时,新部件将继承祖先类型的所有属性。如果你继承的是抽象类,则继承的属性是protectedpublic,但不是published。如想使用户访问protectedpublic属性,可以将该属性重定义为published。如果你使用TWinControl继承,它继承了Ctl3D属性,但是protected的,因此用户在设计和运行时不能访问Ctl3D,通过在新部件中将Ctl3D重声明为published,就改变了Ctl3D的访问级别。下面的代码演示如何将Ctl3D声明为published,使之在设计时可被访问。

 

  type

TSampleComponent=class(TWinControl)

published

property Ctl3D;

end;

 

4. 定义部件属性

  ⑴ 属性的声明

  声明部件的属性,你要描述:

 ● 属性名

  属性的类型

  ● 读和设置属性值的方法

 

  至少,部件属性应当定义在部件对象声明的public部分,这样可以在运行时很方便地从外部访问;为了能在设计时编辑属性,应当将属性在published

[1] [2] [3] [4] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • 热门文章
    Olldbg常见问题
    汇编语言的艺术(组合语言的艺术)--观
    汇编语言的艺术(组合语言的艺术)--准
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言---程式设计 (4)
    虚拟8086模式
    SYS命令使用说明
    javascript + CSS 实现动态菜单显
    推荐文章
    自制Windows XP SP2自动安装光盘
    SQLServer注入工具改进版 v1.02
    使用photoshop CS进行自然美肤
    Photoshop绘制诺基亚手机
    PHOTOSHOP制作秋日之梦
    PHOTOSHOP鼠绘名模王爱萍
    Photoshop制作晶莹飞溅的水珠
    教你用PHOTOSHOP做放大镜
    鼠绘美女及服装修画全过程