procedure TForm1.sss(var EmpList:array of integer);
begin
    SetLength(EmpList,MaxON);
end;????[Error] Unit1.pas(27): Incompatible types
解决100分

解决方案 »

  1.   

    procedure TForm1.sss(EmpList: array of integer);
    var
      i: integer;
    begin
      for i := 0 to 9 do
        ShowMessage(IntToStr(EmpList[i]));
    end;procedure TForm1.SetValue;
    var
      a: array of integer;
      i: integer;
    begin
      SetLength(a, 10);
      for i := 0 to 9 do
        a[i] := i;  sss(a);
    end;
      

  2.   

    用 var 是可以的。动态数组是不能这样传递给其他函数来分配空间的
      

  3.   

    动态数组的名字相当于指针(相当于),
    SetLength(指针,大小).
    --------------------------而作为参数传递后:procedure TForm1.sss(EmpList: array of integer);
    var
      i: integer;
    begin
      for i := 0 to 9 do
        ShowMessage(IntToStr(EmpList[i]));
    end;这里,接受它的函数,不认为他是指针,是有实际大小的数组。