2010-12-01 8 views
4

既定では、2010年以下のバージョンのRTTIは公開されたクラスメンバに対してのみ作成されます。パブリックメソッドのRTTIをサポートするDelphiのバージョンはどれですか?

2006年のブログ(http://hallvards.blogspot.com/2006/09/extended-class-rtti.html)には、$ METHODINFO(または$ M)を使用して公開されているメソッドと公開されているメソッドが含まれていますDelphi 6以降です。これは正しいですか?

ブログエントリは言った:

「WebSnapのは、 『新』(D6とD7に文書化されていませんされた)コンパイラ指令ON $ METHODINFOは、公開と公開されている方法のための拡張RTTIを生成するために使用されます。」 ... "更新(2007年10月27日):$ METHODINFOはデルファイ7ではなくデルファイ7で初めて利用可能でした。

+3

$ METHODINFOはメソッドにのみ適用され、プロパティには適用されません。 – dthorpe

+0

ヒントについて@dthorpeありがとうございました - 非稼働の公開プロパティに関する副注釈を削除しました – mjn

+2

$ METHODINFOがCORBAオブジェクトで使用されるRTLによる動的リモートスタブ+プロキシ生成をサポートするためにコンパイラに追加されました。 – dthorpe

答えて

2

Delphi 2010以降の新しいRTTIは、あなたが望むものをサポートします。

Delphi 2009以降では不運になりました。

+0

もちろん、Delphi 2010は素晴らしいですが、私ではなく、アップグレードしていない(またはできない)他のユーザーですが、とにかく、質問は、知識のギャップを閉じるためだけだった:) – mjn

+0

同様にデルファイ7(少なくとも)です。 Delphi 2010は、より多くのものを一括してサポートしています。実際には、単に "サポートする"だけでなく、それを投げ込み、あなたがそれを望まないなら、それをオフにする必要があります。 – Deltics

+0

@mjustin:問題ありません。事実だけを述べるだけで他の人たちも恩恵を受けることができます。 –

関連する問題