看看typinfo单元的函数,不过我的确没有找到。
这个单元没有文档化。

解决方案 »

  1.   

    typinfo的定义的运行时类型判定,主要是通过TObject申明的接口来做的,比如对象的永久化就调用了这些东西。但似乎在TObject中就缺乏这种支持,我在看看,谢谢。
      

  2.   

    我重新观察了一下,似乎应该从TObject.classinfo入手,因为他返回全部的类运行时信息,包括全部的发布的property,但非TPersistent的类将没有classinfo.我努力一下。
      

  3.   

    在typinfo中有一个getmethodprop的方法,可以返回事件属性,当一个时间不存在时,它会出异常。如果存在,可以配合setmethodprop对事件进行设定handle.其中的一个关键是TMethod,其中code是指handle的指针,因为是对象方法,所以应该用methodaddress来获取并对其设定,data是指向拥有该handle的对象。于是我们可以运用反省模式在运行时改变对象的状态。
      原来当要设定一个事件时,我们需要知道对象的类型,这时编译时绑定,现在只需要知道他支持某个事件接口就可以了,就能在运行时设定了。