title: Freeing OleVariant after using CreateOleObject
body: <p>Here is a simple code:</p>
  
  <pre><code>procedure Test;
  var
    V: OleVariant;
  begin
    V := CreateOleObject('ADOX.Catalog');
    try
      // do something with V...
    finally
      V := Unassigned; // do we need this?
    end;
  end;
  </code></pre>
  
  <p>Do we need to use the <code>V := Unassigned</code> code at the end, or will <code>V</code> is free when it exists the scope of <code>Test</code> procedure?
  in VB you set the variable to Nothing. do we need to do the same here?
  ie:</p>
  
  <pre><code>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;
  </code></pre>