2010-12-01 8 views
4

Standardmäßig wird RTTI in Versionen unter 2010 nur für veröffentlichte Klassenmitglieder erstellt.Welche Delphi-Version unterstützt RTTI für öffentliche Methoden?

Ich habe in einem 2006 Blog (http://hallvards.blogspot.com/2006/09/extended-class-rtti.html) gelesen, dass mit $ METHODINFO (oder $ M), öffentliche und veröffentlichte Methoden enthalten sind seit Delphi 6. Ist das korrekt?

Der Blogeintrag sagte:

„Für WebSnap, die‚neue‘$ METHOD ON-Compiler-Direktive (die in D6 und D7 nicht dokumentiert wurden) verwendet erweitert RTTI für öffentliche und veröffentlichten Methoden zu erzeugen.“ ... "(27. Okt 2007): $ METHODINFO war zuerst in Delphi 7 verfügbar, nicht in Delphi 6."

+3

$ METHODINFO gilt nur für Methoden, nicht für Eigenschaften. – dthorpe

+0

@dthorpe danke für den Hinweis - Ich entfernte die Randnotiz über die nicht funktionierenden öffentlichen Eigenschaften – mjn

+2

$ METHODINFO wurde hinzugefügt, um die Schnittstelle Remoting zu unterstützen - dynamische Stub + Proxy-Generierung von der RTL mit Corba-Objekten verwendet, denke ich. Ich erinnere mich nicht an die Version des Produkts, die zuerst erschien. – dthorpe

Antwort

2

Die neue RTTI in Delphi ab 2010 unterstützt, was Sie wollen.

Sie haben kein Glück in Delphi 2009 und darunter.

+0

Natürlich ist Delphi 2010 nett, aber es ist nicht ich, es sind einige andere Benutzer, die nicht (oder nicht) upgraden können - aber trotzdem, die Frage war nur, um eine Wissenslücke zu schließen :) – mjn

+0

So tut Delphi 7 (zumindest). Delphi 2010 unterstützt eine ganze Menge mehr Sachen. Tatsächlich "unterstützt" es nicht nur, sondern wirft es ein und verlangt von Ihnen, es auszuschalten, wenn Sie es nicht wollen, was Sie wahrscheinlich nicht tun würden, wenn Sie es schaffen würden, ohne es vorher auszukommen -;). – Deltics

+0

@mjustin: kein Problem; nur die Fakten angeben, damit auch andere davon profitieren können. –