title: Excel Ole Object Still Process List after quit
body: <p>I have this code :</p>
  
  <pre><code>function XlsToStringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean;
  const
      xlCellTypeLastCell = $0000000B;
  var
      XLApp, Sheet: OLEVariant;
      RangeMatrix: Variant;
      x, y, k, r: Integer;
  begin
    Result:=False;
    //Cria Excel- OLE Object
    XLApp:=CreateOleObject('Excel.Application');
    try
  
        XLApp.Visible:=False;
  
        XLApp.Workbooks.Open(AXLSFile);
        Sheet:=XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];
        Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
  
        x:=XLApp.ActiveCell.Row;
  
        y:=XLApp.ActiveCell.Column;
  
        AGrid.RowCount:=x;
        AGrid.ColCount:=y;
  
        RangeMatrix:=XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
  
        k:=1;
        repeat
            for r:=1 to y do
                AGrid.Cells[(r - 1),(k - 1)]:=RangeMatrix[K, R];
            Inc(k,1);
        until k &gt; x;
        RangeMatrix:=Unassigned;
        Result:=True;
  
    finally
  
        if not VarIsEmpty(XLApp) then
          begin
            Sheet:=Unassigned;
            XLApp.Workbooks[ExtractFileName(AXLSFile)].Close;
            XLApp.Quit;
            XLAPP:=Unassigned;
          end;
        try freeandnil(XLAPP) except; end;
        try freeandnil(Sheet) except; end;
    end;
  end;
  </code></pre>
  
  <p>but after quit with the Quit command, the process still remains in the list, considerations: I performed searches and understood that if there is a referenced object it remains in the list, but I believe that I have all released.</p>