Wenn ich ein Objekt habe, das eine Schnittstelle implementiert, ist es nicht allzu schwierig, mit RTTI die Schnittstelle nachzuschlagen und ihre GUID zu erhalten. Aber wenn ich den Namen des Objekts wissen möchte, gibt es eine Möglichkeit, diesen zu erhalten? Es ist einfach genug, den Namen einer Klasse zu erhalten, aber für Schnittstellen scheint es ein bisschen schwieriger zu sein...
Antwort
Zu viele Anzeigen?Der schwierige Teil besteht darin, RTTI von einer Schnittstelle zu erhalten. Wenn Sie das geschafft haben, dann sollten Sie den Namen bereits in der PTypeInfo
Datensatzzeiger.
In einem meiner Programme habe ich ein spezielles Registrierungssystem geschrieben, das GUIDs auf Strings abbildet, damit ich fehlgeschlagene Aufrufe an QueryInterface
und gescheitert " as
" wirft. Das war in Delphi 2005. Meinem Verständnis nach hat sich RTTI für Schnittstellen in späteren Delphi-Versionen so weiterentwickelt, dass ich dieses System möglicherweise nicht mehr benötige.