タイプに名前が付けられていない場合、コンパイラは RTTI を生成しません。例: T = 整数の配列 [0..1,0..1]; この場合、配列の合計サイズを知ることはできますが、各次元のサイズを知ることはできません。
T01 = 0..1; という明示的な名前の型を使用する場合にのみ機能します。T = 整数の配列[T01,T01];
私は何かを逃した?
テストコード:
type
t = array[0..1, 0..1] of Integer;
procedure test;
var
i: PTypeInfo;
d: TArrayTypeData;
begin
i := TypeInfo(t);
assert(i.Kind = tkArray);
d := GetTypeData(i).ArrayData;
end;