Delphi的OLEVariant数据类型
(2011-01-16 10:54:47)
标签:
杂谈 |
OLEVariant数据类型,看到Variant就知道这个是个变体,可变为其他的类型,前提是要知道怎么给它赋值,因为不能直接把array
of byte赋给它。这只说明这一种用法,赋值数组。
首先先建立一个变量;
var
test:OLEVariant;
i:integer;
然后要分配空间,使用VarArrayCreat(),这个方法在variants单元中,所以确保前面已经包含进这个单元。
varArrayCreat([0,255],varbyte),[0,255]表明分配256个空间,类型为byte。
这一段代码这样写:
test:=VarArrayCreat([0,255],varbyte);
for i:=0 to 255 do
begin
test[i]:=data[i];//data[]为你的要赋给test的数组
end;
之后就可以直接使用test了。
例如:mscomm控件中的输出
mscomm1.output:=test;会把这个数组发送出去。
采用test而不直接用char(),是因为char()转换为字符值,而有些byte值没对应的字符这时,char()会返回0的,这样发送字节数据就会出问题。
首先先建立一个变量;
var
test:OLEVariant;
i:integer;
然后要分配空间,使用VarArrayCreat(),这个方法在variants单元中,所以确保前面已经包含进这个单元。
varArrayCreat([0,255],varbyte),[0,255]表明分配256个空间,类型为byte。
这一段代码这样写:
test:=VarArrayCreat([0,255],varbyte);
for i:=0 to 255 do
begin
end;
之后就可以直接使用test了。
例如:mscomm控件中的输出
mscomm1.output:=test;会把这个数组发送出去。
采用test而不直接用char(),是因为char()转换为字符值,而有些byte值没对应的字符这时,char()会返回0的,这样发送字节数据就会出问题。

加载中…