比价怪异的问题(100分)

  • 主题发起人 主题发起人 lovellybaby
  • 开始时间 开始时间
L

lovellybaby

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在需要改变一个类的属性的值,但是不想通过给属性赋值来实现而是想通过指针来实现。
比如我想修改Form.Caption的值,我就用P(P是指针类型)来指向Form.Caption值的地址。通过P^的赋值来间接达到我修改Form.Caption的值。现在问题是这么得到Form.Caption所引用值得真正地址。各位高手请赐教!!
 
用Form的指针
不会再问我
 
这要看那个属性的读方法是怎样实现的,
比如:property caption:String read FCaption;
这时取到的是FCaption的地址,是你说的那个。
但如果是这样:property caption:string read GetCaption;
这时取到的是一个临时分配的地址。
 
更正楼上,对于property caption:string read GetCaption;
取到的是GetCaption的过程地址
 
var
p: ^TForm;
...
p:=@Form1;
(p^).Caption:='賦值';
 
深奥。。学习,为啥要用这么复杂的方法?会不会降低代码的可读性?
 
后退
顶部