procedure ChangeArray(Var ChangedArray:Array of String);
var j:integer;
begin
for j:=0 to 3 do begin
SetLength(ChangedArray,j+1);//这一行有问题,可是我必须要在子过程里改变这个数组的长度,有别的办法解决吗?编译错误提示:incompatible types
ChangedArray[j] := IntToStr(j);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var TestArray:array of String;
i:integer;
begin
SetLength(TestArray,0);
ChangeArray(TestArray);
for i:= 0 to Length(TestArray)-1 do begin
Showmessage(TestArray[i]);
end;end;
var j:integer;
begin
for j:=0 to 3 do begin
SetLength(ChangedArray,j+1);//这一行有问题,可是我必须要在子过程里改变这个数组的长度,有别的办法解决吗?编译错误提示:incompatible types
ChangedArray[j] := IntToStr(j);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var TestArray:array of String;
i:integer;
begin
SetLength(TestArray,0);
ChangeArray(TestArray);
for i:= 0 to Length(TestArray)-1 do begin
Showmessage(TestArray[i]);
end;end;
var TestArray:array of Char;
i,j:integer;
begin
SetLength(TestArray,0);
for j:=0 to 3 do begin
SetLength(TestArray,j+1);//这一行有问题,可是我必须要在子过程里改变这个数组的长度,有别的办法解决吗?编译错误提示:incompatible types
TestArray[j] := IntToStr(j)[1];
end;
//ChangeArray(TestArray);
for i:= 0 to Length(TestArray)-1 do
begin
Showmessage(TestArray[i]);
end;
end;
///////////////////////////
两个函数写到一块就可以了,动态数组大概不能作为参数,你虽然写的是Var ChangedArray:Array of String但是好像还是被作为静态数组来处理的...