FieldAddress方法怎么使用?(100分)

  • 主题发起人 主题发起人 wab
  • 开始时间 开始时间
W

wab

Unregistered / Unconfirmed
GUEST, unregistred user!
我的扩展TDBGrid的类定义中定义了一个用来绑定其它数据感知控件的属性(TList类),
这时出现一个问题,添加到TList中就不知道它原来是什么类了。当我想引用TList中对象
的属性DataField时,无法引用,想用显式转换也无法知道要转换成什么类的对象。

所有我想使用FieldAddress(const name :string):pointer方法直接读取属性值,
可就是无法读取,不知是我理解错了,还是Name的传递值定义错了(name我直接用属性名)
 
应该是发布的“域”(published field),可能要以下形式:

published
aa:Integer;

以下什么也得不到:

procedure TForm1.Button3Click(Sender: TObject);
const s:ShortString='Left' ;
var p:pointer;
begin
edit1.maxlength:=10;
p:=(edit1.fieldAddress(s));
showmessage(inttostr(integer(p)));
end;
 
FieldAddress is used internally by the component streaming system to access a specified [red]published[/red] field of an object.
 
To xianjun:
能否讲详细一点,
正如jsxjd做的一样,我fieldAddress返回的永远是nil,这是怎么一回事??
 
后退
顶部