Einzelnen Beitrag anzeigen

Ruediger123

Registriert seit: 30. Aug 2011
16 Beiträge
 
#1

Objekte bestimmter Klassen dynamisch erzeugen und freigeben

  Alt 11. Mai 2017, 08:34
Hallo, ich habe in einer selbst erstellten Klasse einige Felder als Objekt einer bestimmten Klasse.
Wie kann ich diese im Constructor bzw. Destructor dynamisch über eine "RTTI-Schleife" über alle vorhandenen Felder erzeugen/freigeben.


Code:
var
  rttiContextFeld: TRttiContext;
  rttiTypeFeld: TRttiType;
  rttiField: TRttiField;
begin
  rttiContextFeld := TRttiContext.Create;
  try
    rttiTypeFeld := rttiContextFeld.GetType(self.ClassType);

    for rttiField in rttiTypeFeld.GetDeclaredFields do
    begin
      if (rttiField.FieldType.ToString = AnsiUpperCase('TMyClass') then
      begin
        // Hier soll das Object erzeugt/freigegeben werden
       
      end;
    end;
  finally
    rttiContextFeld.Free;
  end;
end;
  Mit Zitat antworten Zitat