这好像是Delphi7的Bug,以下代码中,我创建一个变体变量数组,第一个元素类型是Int64,第2个元素类型是string,结果代码出错,表示第2个元素是非法的类型,但是如果第2个元素是其他任何类型,都不会出错首先看出错的代码:
如果在循环语句中判断变体变量数组各个元素的类型,在判断第2个元素类型时,就将出错!代码如下:
var
  t: Int64;
  vValues: Variant;
begin 
  t := 112342;
  vValues := VarArrayCreate([0, 1], varVariant);
  vValues[0] := t;
  vValues[1] := 'dfd';
  for i := 0 to 1 do
    t := VarType(vValues[i]);
end;不出错的代码:
如果不在循环语句中判断变体变量数组各个元素的类型,就不会出错!见以下代码:
var
  t: Int64;
  vValues: Variant;
begin 
  t := 112342;
  vValues := VarArrayCreate([0, 1], varVariant);
  vValues[0] := t;
  vValues[1] := 'dfd';
  t := VarType(vValues[0]);
  t := VarType(vValues[1]);
end;