使用CreateOleObject后释放OleVariant

时间:2011-11-29 16:25:45

标签: delphi activexobject

这是一个简单的代码:

procedure Test;
var
  V: OleVariant;
begin
  V := CreateOleObject('ADOX.Catalog');
  try
    // do something with V...
  finally
    V := Unassigned; // do we need this?
  end;
end;

我们是否需要在最后使用V := Unassigned代码,或者当V程序的范围存在时,Test是免费的吗? 在VB中,您将变量设置为Nothing。我们需要在这做同样的事吗? 即:

function VarNothing: IDispatch;
// emulate VB function SET VarX = Nothing
var
  Retvar: IDispatch;
begin
  Retvar := nil;
  Result := Retvar;
end;

// do something with V and finally:
V := VarNothing;

1 个答案:

答案 0 :(得分:9)

OleVariant会在超出范围时自动释放界面。如果需要尽快发布,可以为OleVariant分配新值。