Forum: Object-Pascal / Delphi-Language
by mytbo,
11. Sep 2023
Mit mORMot (ich glaube, du verwendest es) sieht es so aus:
uses
mormot.core.base,
mormot.core.json,
mormot.core.rtti;
function GetFieldNameAndValue(pmTypeInfo: PRttiInfo; pmInstance: Pointer; pmFieldIdx: Integer; out pmoFieldValue: Variant): String;
var
rttiType: TRttiType;
Forum: Object-Pascal / Delphi-Language
by mytbo,
11. Sep 2023
function GetFieldNameAndValue(pmTypeInfo: Pointer; pmInstance: Pointer; pmFieldIdx: Integer; out pmoFieldName: String; out pmoFieldValue: TValue): Boolean;
var
rttiType: TRttiType;
rttiFields: TArray<TRttiField>;
begin
if (pmTypeInfo <> Nil)
and (pmInstance <> Nil)
and (pmFieldIdx >= 0) then
begin
rttiType := TRttiContext.Create.GetType(pmTypeInfo);
Forum: Object-Pascal / Delphi-Language
by mytbo,
11. Sep 2023
function GetFieldValue(pmTypeInfo: Pointer; pmInstance: Pointer; pmFieldIdx: Integer): TValue;
begin
if (pmTypeInfo <> Nil)
and (pmInstance <> Nil)
and (pmFieldIdx >= 0) then
begin
var rttiType: TRttiType := TRttiContext.Create.GetType(pmTypeInfo);
if rttiType <> Nil then
begin
var rttiFields: TArray<TRttiField> := rttiType.GetFields;