已知一个字符串,如何读取某class中与字符串同名的属性的值?(50)

  • 主题发起人 主题发起人 336764
  • 开始时间 开始时间
3

336764

Unregistered / Unconfirmed
GUEST, unregistred user!
如:已知a:='myvar'
//变量字符串内容不定;tmyvarlist = record myvar:string
myvar1:string;end;如何通过 a 变量 得知 myvarlist.myvar的内容? 或赋值给myvarlist.myvar 。谢谢。
 
使用rtti寻找符合的域,如果找到则处理此域内容,简单点的解决方法是使用一个二维数组,用二个元素分别保存变量名字和变量内容对数组进行搜索处理就很快
 
rtti里面的类型必须是Tpersistent继承过来的,那可以获取classinfo或者其他的classname之内的属性
 
可以给你个这样的思路:你得知道属相的名称,类型,然后将他们作为参数传给你自定义的过程,里面使用使用指针来获取你需要的内容。
 
Record 结构体? 不是类吗?TEnumObject = class(TPersistent) private FEnum: TEnum
published property Enum: TEnum read FEnum write FEnum
end;uses TypInfo;var Value: string;begin EnumObj := TEnumObj.Create
try Value := GetEnumProp(EnumObj, 'Enum')
finally EnumObj.Free
end;end;
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
606
import
I
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部