Browse Source

rtti: added TRttiType.GetQualifiedName, issue 38917, from henrique

mattias 4 years ago
parent
commit
adb8e064c1
1 changed files with 7 additions and 0 deletions
  1. 7 0
      packages/rtl/rtti.pas

+ 7 - 0
packages/rtl/rtti.pas

@@ -240,6 +240,7 @@ type
     FTypeInfo: TTypeInfo;
     FTypeInfo: TTypeInfo;
     //FMethods: specialize TArray<TRttiMethod>;
     //FMethods: specialize TArray<TRttiMethod>;
     function GetAsInstance: TRttiInstanceType;
     function GetAsInstance: TRttiInstanceType;
+    function GetQualifiedName: String;
   protected
   protected
     function GetName: string; override;
     function GetName: string; override;
     //function GetHandle: Pointer; override;
     //function GetHandle: Pointer; override;
@@ -278,6 +279,7 @@ type
     property AsInstance: TRttiInstanceType read GetAsInstance;
     property AsInstance: TRttiInstanceType read GetAsInstance;
     property TypeKind: TTypeKind read GetTypeKind;
     property TypeKind: TTypeKind read GetTypeKind;
     //property TypeSize: integer read GetTypeSize;
     //property TypeSize: integer read GetTypeSize;
+    property QualifiedName: String read GetQualifiedName;
   end;
   end;
 
 
   TRttiTypeClass = class of TRttiType;
   TRttiTypeClass = class of TRttiType;
@@ -1719,6 +1721,11 @@ begin
   Result := nil;
   Result := nil;
 end;
 end;
 
 
+function TRttiType.GetQualifiedName: String;
+begin
+  Result := Format('%s.%s', [Handle.Module.Name, Name]);
+end;
+
 { TVirtualInterface }
 { TVirtualInterface }
 
 
 constructor TVirtualInterface.Create(InterfaceTypeInfo: Pointer); assembler;
 constructor TVirtualInterface.Create(InterfaceTypeInfo: Pointer); assembler;