小问题(5分)

  • 主题发起人 主题发起人 studing
  • 开始时间 开始时间
S

studing

Unregistered / Unconfirmed
GUEST, unregistred user!
var result;variant;
请问variant是什么类型的
table1.lookup,请问lookup的具体用法是什么呀!请给以详细的说明!
拜托各位了!
 
variant 类型是指在编译过程中无法确定其数据类型的变量类型,他有可能是各种数据类型
lookup具体用法:
function Lookup(const KeyFields: String; const KeyValues: Variant; const ResultFields: String): Variant;
用法如下
procedure TForm1.Button1Click(Sender: TObject);
var
V: Variant;
C: Integer;
A: String;
begin
V := Table1.Lookup('Company;State',
VarArrayOf(['Blue Sports', 'OR']),
'CustNo;Addr1');
if not (VarType(V) in [varNull]) then begin
C := V[0];
A := V[1];
ShowMessage(IntToStr(C) + #10 + A);
end
else
ShowMessage('Search unsuccessful!');

end;
 
关于VARIANT,下面是DELPHI5.5的帮助的中文翻译,有不准确的地方请高手指正:
--
在有些时候,一些在编译时不能确定的或者不能决定的而又必须使用的数据,对它们进行巧妙的处理的关键。
这时,有一个选择就是使用一个能在运行时可以改变类型的变量类型——可变变量(Variant)。如其名,可变变量可以适应所有常规变量但同时消耗了大大高于常规变量的内存,而且运行速度也大大的降低。
此外,一些在编译时就能发现的错误,用了可变变量后,只能在运行时才表现出来。
可变变量可存储除记录型、集合型(枚举型)、静态数组型、文件型、类型、继承类型、指针型和64位整型外的所有类型的数据。另一方面,除了INT64外,它能控制除结构型和指针型外的所有数据。它能控制COM和CORBA对象,能调用它们的方法及过程等。
它还能控制动态数组和一种特殊的静态数组——可变变量数组。可变变量可以将其它可变变量的数据和整型、实数型、字符串型和布尔型的数据写在一个表达式或分配式中,编译器会自动完成类型转化。
可变变量所存储的字符串数据是不能被索引的。也就是说,如果V是一个可变变量型,它的值是一个字符串,那么V[1]是非法的取值。
一个可变变量占用16字节的内存,由一个类型代码和一个数据或一个特殊类型代码和一个数据指针组成。所有的可变变量在生成时都初始化成一个特殊的值——不可接近,NULL表示未知的或数据丢失。
标准函数VARTYPE可以返回可变变量的实际类型代码;VARTYPEMASK是一个控制面具常量用来析取VARTYPE返回的结果代码,例:
VarType(V) and varTypeMask = varDouble
如果V是包含的是DOUBLE型的数据或DOUBLE型的数组,则返回TRUE(注:Mask只简单的掩饰指出是否是数组的第一位)。在SYSTEM UNIT 中有TVARDATA的详细定义,它将给出当前版本的可变变量所适用的范围。也可以看在线帮助的VARTYPE中的表,请注意可能有新增的类型在将来的OBJECT PASCAL中。
 
两位,谢了!
 
两位,谢了 !
 
后退
顶部