动态数组参数传递问题
type
vItems = record
Items :string; //项目名称
Units :string; //单位
Nums :Integer; //数量
Price :Currency; //单价
Money :Currency; //金额
end;
函数名称:
function OpenFrm(var sItem:array of vItems;OperatorCode:string):Boolean;
调用过程:
procedure TWorkWindowForm.btn1Click(Sender: TObject);
var
bb:array [0..7] of vItems;
begin
OpenFrm(bb,'aa');
end;
错误:
[Error] WorkWindow.pas(62): Incompatible types
[解决办法]
开放数组是可以兼容动态数组、静态数组和“[]”括起来的数组项的,以下编译完全没问题,D7
type TRec = record end;procedure a(var x: array of TRec);beginend;procedure TForm1.FormCreate(Sender: TObject);var m: array[0..7] of TRec;begin a(m);end;
[解决办法]