type
  Ta=array of string;
var
  Form1: TForm1;
  b:ta;
procedure func(a:ta);implementation{$R *.dfm}
procedure func(a:ta);
begin
  showmessage(a[1]);
  b:=a;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  func(['123','asd']);
end;出错:Ordinal type requried;

解决方案 »

  1.   

    应该这样:
    procedure func(a:array of string);
    注意,在Type中声明的叫Dynamic Array,而在函数中的叫Open Array。两者类型不兼容。(搞笑吧)
      

  2.   

    不对,我刚才说错了,Open Array对Dynamic Array兼容,而Dynamic Array对Open Array不兼容。
    所以出现你的问题。
      

  3.   

    procedure func(a:array of string);
    是呀,改成那样就可以啦
      

  4.   

    procedure func(a:array of string);