如:A:=VarArrayCreate([0,4],VarVariant);
A[0]:=1;
A[1]:='ABC';
A[2]:=3;
A[3]:=VarArrayof([1,2,3,4,5]);
如果要取出A[3]中的各个具体的值A[3][0]=1,用上面的函数这样配合?
谢谢!
A[0]:=1;
A[1]:='ABC';
A[2]:=3;
A[3]:=VarArrayof([1,2,3,4,5]);
如果要取出A[3]中的各个具体的值A[3][0]=1,用上面的函数这样配合?
谢谢!
var
I: Integer;
S: string;
A: Variant;
B: Variant;
begin
A:=VarArrayCreate([0,4],VarVariant);
A[0]:=1;
A[1]:='ABC';
A[2]:=3;
A[3]:=VarArrayof([1,2,3,4,5]);
//取A[3]的高低限并循环,VarArray*Boud的第二个参数,代表A[3]的维数.
for I := VarArrayLowBound(A[3], 1) to VarArrayHighBound(A[3], 1) do
begin
B := A[3][I];
S := S + VarToStr(B) + ', ';
end;
Edit1.Text := S;
end;
VarArrayHighBound和VarArrayLowBound是取Variant Array指定维(从1开始)的上、下界。
如:
var
a, b: Variant;
I, J, K, M: Integer;
begin
a := VarArrayOf([1234, 'abc', Null]);//a是个一维Variant数组,元素类型是Variant,元素个数是3,上界是2,下界是0。
b := VarArrayCreate[0, 3, 1, 16], varOleStr)//b是一个16行4列的二维数组(注意,Variant数组下标是列在前,行在后),元素类型是PWideChar,最大列号是3,最小列号是0,最大行号是16,最小行号是1。
I := VarArrayHighBound(b, 1)//I是b的最大列号:3;
J := VarArrayLowBound(b, 1)//J是b的最小列号:0;
K := VarArrayHighBound(b, 2)//K是b的最大行号:16;
M := VarArrayLowBound(b, 2)//M是b的最小行号:1。