我完全赞同younghat的,Variant或者OleVariant是不定类型,
编译器发现你使用了variant或者OleVariant类型就会自动把相应的单元编译进去
最好不要去用Variant或者OleVariant,它 的速度非常的慢,不信你可以去试试它的速度。
procedure TForm1.Button1Click(Sender: TObject);
var
time1, time2: TDateTime;
n1, n2: Variant;
begin
time1 := Now;
n1 := 0;
n2 := 0;
ProgressBar1.Position := 0;
while n1 < 5000000 do
begin
n2 := n2 + n1;
Inc (n1);
if (n1 mod 50000) = 0 then
begin
ProgressBar1.Position := n1 div 50000;
Application.ProcessMessages;
end;
end;
// we must use the result
Total := n2;
time2 := Now;
Label1.Caption := FormatDateTime (
'n:ss', Time2-Time1) + ' seconds';
end;
上例可见两者的速度差异非常之大,以至于不用精确记时也能看到这种差异
Variant类型主要用于OLE 编