Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
delphi定义一个静态和动态元素混合的const多维数组_Delphi_Pascal - Fatal编程技术网

delphi定义一个静态和动态元素混合的const多维数组

delphi定义一个静态和动态元素混合的const多维数组,delphi,pascal,Delphi,Pascal,在创建多维数组时,是否可以混合使用静态数组和动态数组,然后使用它们定义该类型的常量。 编译器似乎没有以下问题,所以我认为这样混合动态和静态数组是合法的 TSoftKeyBase = (skEmptyCommandLine, skChannelsSelected); TSoftKeySet = array of array of String; TSoftKeys = array[TSoftKeyBase] of TSoftKeySet; 当我试图为这个数组定义常量时,我总是在元素的内部列表中得

在创建多维数组时,是否可以混合使用静态数组和动态数组,然后使用它们定义该类型的常量。 编译器似乎没有以下问题,所以我认为这样混合动态和静态数组是合法的

TSoftKeyBase = (skEmptyCommandLine, skChannelsSelected);
TSoftKeySet = array of array of String;
TSoftKeys = array[TSoftKeyBase] of TSoftKeySet;
当我试图为这个数组定义常量时,我总是在元素的内部列表中得到“Ordinal type required”。我是否超越了语言的范围

const
  SOFT_KEYS: TSoftKeys =
      [
        [
          ['Select Previous', 'Page',         'Close',        'SC',             'Park',             'MORE >'],
          ['Output',          'FX',           'Macro',        'Select Active',  'Select Changed',   'MORE >'],
          ['Cue List',        'Re Cue List',  'Load',         'Inclusive Mode', 'Active Sel Mode',  'MORE >'],
          ['If',              'View',         'Scroll To',    '',               '',                 'MORE >']
        ],
        [
          ['Select Previous', 'Last',         'Next',         'Clear Selection','Park',             'MORE >'],
          ['Down %',          'Up %',         'Home',         'Select Active',  'Select Changed',   'MORE >'],
          ['Virtual DSC',     'HiLight',      'LoLight',      'Fan',            'Offset',           'MORE >'],
          ['',                '',             '',             '',               '@ ATTs',           'MORE >']
        ]
      ];

您需要在最外层使用普通括号(
array[TSoftKeyBase]
),因为它是一个静态数组(而不是动态数组或集合)

更简单的例子:

type
  TTest = array[0..2] of Integer; // static array

const
  Data: TTest = (10, 20, 30);


您需要在最外层使用普通括号(
array[TSoftKeyBase]
),因为它是一个静态数组(而不是动态数组或集合)

更简单的例子:

type
  TTest = array[0..2] of Integer; // static array

const
  Data: TTest = (10, 20, 30);

type
  TTest = array of Integer; // dynamic array

const
  Data: TTest = [10, 20, 30];
type
  TTest = set of Byte; // set

const
  Data: TTest = [10, 20, 30];