在一个窗定在定义
 public
    F_sort:array of array of string;在另一个窗体的一个过程中定义
var
    ia:array of array of string;begin
  setlength(ia,3,3)
  ia[0,0]:='aaaa';XX.f_sort:=copy(ia);
//提示不兼容类型 incompatible types 
end;编译过不去 郁闷阿 怎么搞的数组怎么不能传递呢

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TStringArray = Array of Array of String;  TForm1 = class(TForm)
      private
        { Private declarations }
      public
        F_sort:TStringArray;
      end;var
      Form1: TForm1;implementation{$R *.dfm}end.
     
    在另一个窗体的一个过程中定义
    var
        ia:TStringArray;begin
      setlength(ia,3,3)
      ia[0,0]:='aaaa';XX.f_sort:=copy(ia);
    end;
      

  2.   

    楼上的为什么要放在type中 说说
      

  3.   

    F_sort:array of array of string;ia:array of array of string;
    两个编译器不认为是同一类型
      

  4.   

    还是不行阿XX.f_sort:=copy(ia);//通不过
      

  5.   

    没有给f_sort分配空间,一个数组长度已知,一个未知,是不是这个原因!
      

  6.   

    var
      F_sort, ia: array of array of string; // 是类型保持一致
    begin
      SetLength(ia, 3, 3);
      ia[0, 0] := 'aaa';
      F_sort := ia; // 使两者指向同一内存地址
      Caption := F_sort[0, 0]; // 使用F_sort(效果于ia[0, 0]相同)
    end;要想有2个一模一样的数组内容就必须分别为两个指针开辟内容空间,存放内容。