在Pascal中为数组添加值 - iIllegal Qualifier"

时间:2016-04-26 12:04:06

标签: arrays pascal

我正在尝试创建一个打印11个按钮的程序,所以我想使用一个数组。这些按钮的唯一变化是名称。

当我尝试编译时,我收到错误"非法限定符"在我的第一次阵列分配。

type 
buttonName = array[0..11] of String;

procedure PopulateButton(const buttonName);
begin
    buttonName[0] := 'Sequence';
    buttonName[1] := 'Repetition';
    buttonName[2]:= 'Modularisation';
    buttonName[3]:= 'Function';
    buttonName[4]:= 'Variable';
    buttonName[5]:= 'Type';
    buttonName[6]:= 'Program';
    buttonName[7]:= 'If and case';
    buttonName[8]:= 'Procedure';
    buttonName[9]:= 'Constant';
    buttonName[10]:= 'Array';
    buttonName[11]:= 'For, while, repeat';
end;

并且主要是我试图将此用于循环

for i:=0 to High(buttonName) do 
        begin
            DrawButton(x, y, buttonName[i]);
            y:= y+70;
        end;

请知道,我对此非常陌生,并且对数组,参数/通过常量调用等方面的知识不太自信。

谢谢

1 个答案:

答案 0 :(得分:1)

PopulateButton()的参数定义错误。

试试这个:

type 
  TButtonNames = array[0..11] of String;

procedure PopulateButtons(var AButtonNames: TButtonNames);
begin
  AButtonNames[0] := 'Sequence';
  ...
end;

...

var lButtonNames: TButtonNames;

PopulateButtons(lButtonNames);

for i := Low(lButtonNames) to High(lButtonNames) do 
begin
  DrawButton(x, y, lButtonNames[i]);

  y:= y+70;
end;

还要注意命名约定。类型通常以T开头,函数参数以A开头。