Эта функция должна преобразовать решение, указанное в: eval поля записи в повторно используемую функцию. На самом деле этот код ниже не компилируется, и я понятия не имею, как заставить его работать...
procedure EnumerateFieldandValues(const m: TObject; RecordParams: TStringList);
var
i: Integer;
rtype: TRTTIType;
fields: TArray<TRttiField>;
begin
rtype := TRttiContext.Create.GetType(TypeInfo(TObject.ClassType));
// Memo1.Lines.Add(rtype.ToString);
fields := rtype.GetFields;
for i := 0 to High(fields) do
RecordParams.Add(Format('%s: %s :: %s', [fields[i].Name,
fields[i].FieldType.ToString, fields[i].GetValue(@m).ToString]));
end;
TypeInfo(TObject.ClassType)
, аTypeInfo(m.ClassType)
- person Igor   schedule 23.05.2014m.ClassInfo
.TypeInfo
— это магическая функция компилятора, для которой требуется идентификатор типа, а не ссылка на класс. Он оценивается во время компиляции, поэтому, если код вообще скомпилируется, он предоставит вам информацию о типе методаClassType
, который простоTClass
. - person Rob Kennedy   schedule 23.05.2014