在一个窗定在定义
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;编译过不去 郁闷阿 怎么搞的数组怎么不能传递呢
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;编译过不去 郁闷阿 怎么搞的数组怎么不能传递呢
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;
两个编译器不认为是同一类型
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个一模一样的数组内容就必须分别为两个指针开辟内容空间,存放内容。