DynArrayToVariant DynArrayFromVariant复制动态数

时间:2023-03-09 19:08:40
DynArrayToVariant  DynArrayFromVariant复制动态数

type intArr=array of Integer;

procedure TfrmMainDA.Button2Click(Sender: TObject);
var aa:intArr;bb:intArr;vv:Variant;a:Integer;s:String;
begin
  SetLength(aa,3);
  aa[0]:=1;
  aa[1]:=10;
  aa[2]:=100;       
  DynArrayToVariant(vv,aa,TypeInfo(intArr));
  DynArrayFromVariant(Pointer(bb),vv,TypeInfo(intArr));
  for a:=Low(bb) to High(bb) do s:=s+#13+IntToStr(bb[a]);
  Prompt(s);
end;

如果作用看不懂,

function TRawDataMatrix.AddOneSample(aaa: intArr): Boolean;
var vv:Variant;
begin
//方法1
  DynArrayToVariant(vv,aaa,TypeInfo(intArr));
  DynArrayFromVariant(Pointer(temp),vv,TypeInfo(intArr));
//方法2
//  for a:=Low(aaa) to High(aaa) do temp[a]:=aaa[a];

还是很实用的。

SafeArrayDestroyData 不懂。