Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2022
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.10 KB | None | 0 0
  1. unit Decl;
  2.  
  3. interface
  4.  
  5. uses
  6.   mormot.orm.core;
  7.  
  8. type
  9.   TPpCallSecurityRight = packed record
  10.     Value: Int64;
  11.   end;
  12.  
  13.   // works
  14.   // TPpCallSecurityRightList = array of TPpCallSecurityRight;
  15.  
  16.   // ERttiException: Unknown type Fail: TArray
  17.   TPpCallSecurityRightList = TArray<TPpCallSecurityRight>;
  18.  
  19.   TMyClass = class(TOrm)
  20.   private
  21.     FSomeStr: UTF8String;
  22.     FFail: TPpCallSecurityRightList;
  23.   published
  24.     property SomeStr: UTF8String read FSomeStr write FSomeStr;
  25.     property Fail: TPpCallSecurityRightList read FFail write FFail;
  26.   end;
  27.  
  28. procedure Test;
  29.  
  30. implementation
  31.  
  32. uses
  33.   mormot.core.rtti;
  34.  
  35. procedure Test;
  36. var
  37.   OrigRtti, NewRtti: TRttiCustom;
  38.   PropText: UTF8String;
  39. begin
  40.   OrigRtti := Rtti.RegisterClass(TMyClass);
  41.   for var Prop in OrigRtti.Props.List do
  42.     PropText := PropText + Prop.Name + ':' + Prop.Value.Name + ';';
  43.   OrigRtti.Free;
  44.  
  45.   Writeln(PropText);
  46.   Writeln;
  47.  
  48.   NewRtti := TRttiCustom.CreateFromText(PropText);
  49.   for var Prop in NewRtti.Props.List do
  50.     Writeln(Prop.Name + ': ' + Prop.Value.Name + ';');
  51.   NewRtti.Free;
  52. end;
  53.  
  54. end.
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement