property中的read和write什么时候会被调用?? (10分)

  • 主题发起人 主题发起人 zhbruce
  • 开始时间 开始时间
Z

zhbruce

Unregistered / Unconfirmed
GUEST, unregistred user!
书上说,当读取属性时会调用read,当设置属性时会调用write,但是怎样才是读取属性和设置属性呢..?
 
read和write是关键字,你说的读取或者设置,
这部分的工作是编译器完成的,当你编译的时候,
Delphi就已经知道了read哪个变量(或者调用哪个GetXXX函数),
write哪个变量(或者调用哪个SetXXX方法)。
 
比如 property myprop Raed GetMyprop write SetMyprop; //SetMyprop和GetMyprop是函数、过程
当你 aaa:=obj.myprop 的时候,编译器翻译成 aaa:=obj.GetMyprop();
当你 obj.myprop:=aaa 的时候,编译器翻译成 obj.SetMyprop(aaa);

比如 property myprop Raed FMyprop write FMyprop; // FMyprop是个类的数据据成员
当你 aaa:=obj.myprop 的时候,编译器翻译成 aaa:=obj.FMyprop;
当你 obj.myprop:=aaa 的时候,编译器翻译成 obj.FMyprop:=aaa;


 
当read时调用Read
当write时调用write
:)

 
得到值时使用READ
改变值时使用WRITE
 
property a:integer read get... write set...;
int X:=a; //当read时调用Read
a:=123; //当write时调用write
 
对属性赋值时调用 write , 通常出现在赋值语句的左边。
取属性值时调用 Read,通常在赋值语句的右边。
 
后退
顶部