私は、このための解決策を発見したが、それは、Delphiの新しいバージョン(デルファイ10シアトルとデルファイ10.1にベルリンをテスト)でのみ利用可能であり、それは私がつまずい文書化されていない機能GetTypeKind
に依存しています。
if GetTypeKind(SomeVariable) = tkArray then //Returns true if variable references to static array
if GetTypeKind(SomeVariable) = tkDynArray then //Returns true if variable references to dynamic array
それも、変数自体からその情報を発見する方法はありません内側の配列
var Dyn2DArray: Array of Array of Integer;
if GetTypeKind(Dyn2DArray[0]) = tkDynArray then //Returns true since item of outmost array is references to inner array
if GetTypeKind(Dyn2DArray[0,0]) = tkDynArray then //Returns false since inner array item is of integer type
のアイテムの種類をチェックするために使用することができます。 http://stackoverflow.com/a/554185/33732任意の次元の配列を扱う関数に型情報を渡す例については、RTLの 'SetLength'の実装を参照してください。 –
@RobKennedy私が最初に探していたDelphi 6ではなく、デルファイのそれ以降のバージョンでは、私の答えで見ることができます。 – SilverWarior