AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Methodenliste für Interface

Ein Thema von Kraisel · begonnen am 12. Sep 2016 · letzter Beitrag vom 13. Sep 2016
 
Benutzerbild von Kraisel
Kraisel

Registriert seit: 19. Mär 2012
Ort: Bochum-Linden
64 Beiträge
 
Delphi 12 Athens
 
#1

Methodenliste für Interface

  Alt 12. Sep 2016, 12:55
Hallo,

meine ClassFactory erzeugt eine Crossverweisliste, die angibt, welches Interface in welcher Klasse und welche KLassen die einzelnen Interface implementieren. Mit den Klassen liste ich b.B. auch noch die Methoden und die Properties auf. Das würdeich gerne auch für die Interfaces machen.

Bei Interfaces funktioniert folgender Code aber nicht, obwohl es laut Doku eigentlich gehen sollte.

Delphi-Quellcode:
//==============================================================================
function GetRttiMethods (aInfo: PTypeInfo): TArray<String>;
//==============================================================================
var mContext: TRttiContext;
    mMethods: TArray<TRttiMethod>;
    i, l: Integer;
begin
  mContext := TRttiContext.Create;
  mMethods := mContext.GetType (aInfo).GetMethods ();
  l := Length (mMethods); // mit l bei keinem oder wenigen Einträgen deutlich schneller
  SetLength (Result, l);
  if l > 0 then for i := 0 to l - 1 do Result[i] := mMethods[i].Name;
  mContext.Free;
end;

//==============================================================================
var
  mList: TArray<String>;
begin
  mList := GetRttiMethods (TypeInfo (TMyObject)); // OK
  mList := GetRttiMethods (TypeInfo (TMyRecord)); // OK
  mList := GetRttiMethods (TypeInfo (IMyInterface)); // NG, Liste bleibt leer ???
end;
Hat jemand eine Idee??
Danke
Peter Kaisler
Das einzig Komplizierte ist zu begreifen wie einfach es ist.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:13 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