小编Mil*_*mek的帖子

Delphi RTTI 从记录中获取值

寻求帮助从记录获取值到 CodeSite。虽然我有基本值(整数,字符串..)的记录,但一切正常。

但是问题来自记录中的数组。

姓氏:WideChar 的
数组[0..35] 名称:WideChar 的数组[0..25]

(我找到了这个,但有什么办法吗?)
对于静态数组,使用 RTTI 获取记录字段类型失败

虽然我想获取 Surname / Name 的字段值,但 TRttiField.FieldType.TypeKind 为空。

任何人都知道如何将属性的值转换为字符串?

有我的程序。

class procedure TCodeSite.SendObject<T>(Category: String; lObject : T; Msg: String);
var
lRTTIContext : TRttiContext;
lRTTIObjectType : TRttiType;
lRTTIField : TRttiField;
lRTTIRecordInRecord : TRttiRecordType;
lRTTIFieldInRecord : TRttiField;
lRTTIPointerType : TRttiPointerType;
lRTTIPointerValue : TValue;
lFieldName : string;
lFieldNameInRecord : string;
lStringList : TStringList;
begin
  {$IfNDef CodeSiteDisabled}
    if isActiveDebugCategory(Category) then
begin
  lStringList := TStringList.Create;
  lRTTIContext := TRttiContext.Create;
  lRTTIObjectType := lRTTIContext.GetType(TypeInfo(T));

  if lRTTIObjectType.TypeKind = …
Run Code Online (Sandbox Code Playgroud)

delphi rtti codesite

5
推荐指数
0
解决办法
552
查看次数

标签 统计

codesite ×1

delphi ×1

rtti ×1