首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

record赋值有关问题

2012-04-15 
record赋值问题//定义PArrFields ^TArrFieldsTArrFields recordF1: stringF2: stringendArrFields

record赋值问题
//定义
  PArrFields = ^TArrFields;
  TArrFields = record
  F1: string;
  F2: string;
  end;

ArrFields: array of TArrFields;

const
  AFieldS: array[0..1] of TArrFields = ((F1:'FGoodsNo';F2:'FGoodsNo'),(F1:'FPrice';F2:'FInPri'));
begin
  SetFields(@AFieldS);
end;

procedure SetFields(arr: PArrFields);
begin
  ArrFields := @arr; //这边要给record数组赋值就出错
end;

我的目的是用自定义的record数组做参数,并赋值给数组ArrFields,需要使用时就这样取出值,
for i := Low(ArrFields) to High(ArrFields) do
  begin
  showmessage(ArrFields[i].F1).AsString);
  end; 


但是赋值的时候就会出错,请问大虾们这是怎么回事?先谢谢了


[解决办法]
复制数组的时候直接写
SetLength(ArrFields,2);
Move(AFields[0],ArrFields[0],SizeOf(Tarrfields)*2);
showmessage(ArrFields[0].F1);

不在SetFields 函数里调用了


热点排行