问:我用procedure Proc(var A:array[1..10] of integer);怎么都不能编译通过,难道Delphi不能传递数组作为参数吗?
答:必须先用Type定义一下即可:
type
TProcArray=array[1..10] of integer;
procedure Proc(var A:TProcArray);
这样就没有问题了,而且对于动态数组也可以用上面的方法!使用动态数组的时候,有一个问题是如何遍历每一个数据项?采用类似的代码即可:
procedure Proc(var A:TProcArray);
var
i:integer;
begin
....
for i:=Low(A) to High(A) do
/// A[i]就是每一个数据项
....
end;
直接将数组当作参数的:
动态
定义
TRcdParamArray = array of integer;
function www(VAR RcdParamarray:TRcdParamArray):boolean;
var
iCount:integer;
begin
iCount:=Length(RcdParamarray);//数组长度
...
...
end;
静态
RcdParamArray : array[0..1] of integer =(1,2);
function www(PRcdParamData:PByte;iCount,iItemLen:integer):boolean;
var
p:Pbyte;
data1,data2,iReadLen:integer;
begin
p:=PRcdParamData;
move(p^,data1,iItemLen);//
Inc(p,SizeOf(integer));
move(p^,data2,iItemLen);//
end;