2009-07-27 4 views
6

Delphi RTTIを使用して「シンプルな」プロパティ(ints/enums/stringsなど)にアクセスすることに慣れていますが、Arrayプロパティを操作する方法を理解できません。RTTIを使用してDelphi Array Propertiesにアクセスする方法

まず、GetPropValue/SetPropValueの呼び出しに相当する配列を探します。私はこれらに似たようなものを見ることを期待していますが、余分な "インデックス"パラメータを取っていますが、typinfoユニットのヘルプで何かを見つけることができないようです。

+1

「配列型のプロパティ」または「インデックス付きプロパティ」はここですか? –

+0

私はこれらを意味します: "プロパティCoords [インデックス:整数]:倍長整数読み取りGetCoord書き込みSetCoord;"うまくいけばそれは配列のプロパティですか? – Roddy

答えて

5

配列と配列プロパティは、D2009までRTTIを持つことができません。しかし、Barry Kelly氏はDelphi Liveカンファレンスで、D2010の予定されているRTTIシステムの拡張について話をしたとき、アレイを含むすべてのものがRTTIを利用できると述べました。これは楽しみにしている機能です...

+3

配列にはRTTIがあります。ほとんどすべての型にRTTIがあります。しかし、「配列プロパティ」、すなわちインデックス付きプロパティは、D + 1ではなく。 –

+0

ああ、彼らはしませんか?私は誤解していたはずです。 –

3

可能かどうかわかりません。配列のプロパティは公開できません。つまり、RTTIを持つことはできません。

また、オブジェクトインスペクタのコンポーネントを見ると、そこに配列プロパティはありません。すべての配列プロパティにはカスタムエディタがあります(または、いくつか見逃しているに違いありません)。

関連する問題