TMyClass = class(TPersistClass)
public //或 private
  FLabel: TLabel;
end;
TClassOfMyClass = class of TMyClass;
假设已获得TMyClass的实例 FMyClass,如何用 Rtti,创建 TLable 实例后,指给 FMyClass.FLabel﹖创建 TLable 应该用 Instance:=TLabel.NewInstance as TLabel吧
怎么指派Instance给 FMyClass.FLabel呢﹖(用RTTI哦)

解决方案 »

  1.   

    真的需要 RTTI !为什么呢﹖因为开发阶段并不知道 FLabel1 的存在,
    在后续阶段可能有 FLabel2, 或 FLabel3,或者甚至不用 FLabel 命名,叫什么 FGood: TLabel 都有可能。
    将来只能取到它的名和类,比如字符串 'FLabel2','TLabel'
    然后需要产生一个 Instance,指定给 'FLabel2' 用 RTTI 找出来的 FLabel2 属性。网络上的例子只有 RTTIField.SetValue(Instance, TValue),能够设值给Field,比如 String, Integer 的,却没有能够设 TLabel2.Instance 给 'FLabel2' 所表示的Field的。所以,问题:如何用RTTI,设 TLabel2.Instance 给 'FLabel2' 所表示的Field﹖