注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 科普系列之-使用Windows的..
 帮助

OBject pascal 之属性


2007-08-13 10:48:13
 标签:OBject 属性 pascal   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://520920.blog.51cto.com/126264/38037
例子:property  Color: TColor read GetColor write SetColor stored IsColorStored;
定义方式:property 属性名:属性数据类型   read子句(1)  write子句(2)  其他子句(3);
(1)read子句用于来读取属性的方法或字段.如果指定的是字段(Field),则字段的数据类型必须与属性的
   数据类型相同.如果指定的是方法,则通常是一个不带参数的函数,它的返回类型就是属性的类型,而且
   函数名通常以'Get'开头.
(2)a.Write子句用于指定修改属性的方法,通常是一个过程,而且是一个只有一个参数的过程,参数的数据类型与属性的相同,主要用于传递新值,过程名通常以'Get'开头.在定义方法时,通常首先比较属性的新值与默认值,如不同,就保存在一个字段中,以确保得到的总是最新值.
   b.可以没有write子句,表示属性就是'只读',不能被修改.  
注:read和write子句中指定的方法或字段通常在类的private部分声明,即都是私有的.

(3)stored,default和nodefault子句
  
   a.stored子句用于指定一个布尔表达式(可以是一个布尔常量,布尔类型的字段或返回布尔值的函数),用来控制属性的存储行为,通常只适合与非数组的属性.
         表达式为false时,不将属性值存到Form文件中;为true时,先比较属性的当前值与默认值.相等就不存,不等或者没默认值,就把当前值存到Form文件中.
  
   b.default子句指定属性的默认值.注意:这里所说的默认值,只是用于与属性的当前值进行比较,以确定是否把属性值存储到Form文件中.default后面必须跟的是一个类型与属性类型一致的常量.
     注:default子句只适合在1~31之间的集合类型或有序类型的属性.
  
   c.nodefault子句强调属性没有默认值,相当于没有写.必须明确地使用的情况例如:属性在基类中是有默认值的,而派生类不希望它有默认值,就要用nodefault子句把原有的默认值去掉.
    
 

本文出自 “数据库爱好者” 博客,请务必保留此出处http://520920.blog.51cto.com/126264/38037





    文章评论
 
2007-08-13 22:29:56
a.stored子句用于指定一个布尔表达式(可以是一个布尔常量,布尔类型的字段或返回布尔值的函数),用来控制属性的存储行为,通常只适合与非数组的属性
先留下

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: