这样就可以:type TStrArray = array of string;procedure ...(...; out pArray: TStrArray); begin SetLength(pArray, X); end;我也不知道为什么那样不行!?
type TMyType=array of string; procedure(... ;out pArray:TMyType) begin ... setlength(pArray,x); ... end;
需要先定义一个类型 type TArrayString = array of string;procedure(... ;out pArray: TArrayString);举个例子 var A: array[0..1]of Integer; B: array[0..1]of Integer; // A和B会被编译器看成不同的类型 begin A := B; // 不能通过 end;除非这样声明 var A, B: array[0..1]of Integer;或者 type TArrayInteger = array[0..1] of Integer; var A: TArrayInteger; B: TArrayInteger;
TStrArray = array of string;procedure ...(...; out pArray: TStrArray);
begin
SetLength(pArray, X);
end;我也不知道为什么那样不行!?
TMyType=array of string;
procedure(... ;out pArray:TMyType)
begin
...
setlength(pArray,x);
...
end;
type
TArrayString = array of string;procedure(... ;out pArray: TArrayString);举个例子
var
A: array[0..1]of Integer;
B: array[0..1]of Integer;
// A和B会被编译器看成不同的类型
begin
A := B; // 不能通过
end;除非这样声明
var
A, B: array[0..1]of Integer;或者
type
TArrayInteger = array[0..1] of Integer;
var
A: TArrayInteger;
B: TArrayInteger;