Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Rtti in generischer Klasse (https://www.delphipraxis.net/177010-rtti-generischer-klasse.html)

Morphie 10. Okt 2013 11:02

Rtti in generischer Klasse
 
Ich habe eine generische Klasse und möchte in einer Methode die Properties von T auslesen...
Geht das in Delphi?

x000x 10. Okt 2013 11:52

AW: Rtti in generischer Klasse
 
Ich denke ja:
Delphi-Quellcode:
type
   TTest = class(TObject)
   private
      FTest1: String;
   public
      property Test1: String read FTest1 write FTest1;
   end;

   TGenTest<T> = class(TList<T>)
   private
      procedure ShowProperties;
   end;

//...

uses RTTI;

procedure TGenTest<T>.ShowProperties;
var
   rtContext  : TRttiContext;
   rtType     : TRttiType;
   rtProperty : TRttiProperty;
   strTmp     : String;
begin
   rtContext  := TRttiContext.Create;
   try
      rtType := rtContext.GetType(TypeInfo(T));
      Assert(Assigned(rtType), 'error');
      strTmp := '';
      for rtProperty in rtType.GetProperties do begin
         strTmp := strTmp + rtProperty.Name + '=' + rtProperty.PropertyType.ToString + #13#10;
      end;
      ShowMessage(strTmp);
   finally
      rtContext.Free;
   end;
end;

Morphie 10. Okt 2013 11:53

AW: Rtti in generischer Klasse
 
Okay, danke :) TypeInfo(T) war das Zauberwort


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz