type
TStaticArray = array[1..10] of integer;
TDynamicArray = array of integer;
TMyClass = class(TObject)
private
FStaticArray: TStaticArray;
FDynamicArray: TDynamicArray;
published
property staticArray: TStaticArray read FStaticArray write FStaticArray; //compiler chokes on this
property dynamicArray: TDynamicArray read FDynamicArray write FDynamicArray; //compiler accepts this one just fine
end;
ここでは何が起こっていますか?静的配列はエラーを示します。 "publishedプロパティ 'staticArray'はARRAY型ではありませんが、動的配列は問題ありませんか?よくわかりません。誰もがこれの背後にある推論を知っている、と私はそれを回避することができますか? (そして、いいえ、私はすべての静的配列を動的なものとして再宣言したくないのですが、それは理由のためにサイズになっています)一部の配列は公開できますが、他の配列は公開できないのはなぜですか?
ただ1つの精度:レコードを公開プロパティとして使用することはできません。実際には許可されていますが、このフィールドにはRTTIは付けられていません。したがって、公開されたプロパティのセクションにレコードを追加することは無意味です。一方、動的配列はRTTI内で許可され、処理されます。 –