请帮忙解释一下VarArrayOf和VararrayLowBound、VararrayHighBound的用法,E文教差,看的糊涂!

vigrous_chen 2003-04-04 11:33:50
如: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,用上面的函数这样配合?
谢谢!
...全文
712 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
短歌如风 2003-04-05
  • 打赏
  • 举报
回复
VarArrayOf是一种快速(写代码快而不是运行快)的方法生成一个一维Variant数据的方法,它接受一个Variant类型的Open array,用这个数据生成一个一维的Variant Array of Variant(类型为Variant)。由于Delphi对Open Array类型参数的支持,使你可以用一行语句生成一个数组。不过它有两个缺陷:只能生成一维数组;只能生成元素类型是Variant的数组。其它的数组只能用VarArrayCreate去创建,并用循环给元素赋值。
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。
cool_star 2003-04-05
  • 打赏
  • 举报
回复
study
lvloj 2003-04-05
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
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;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧