![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закрытие OLe объекта
Майя © (2004-12-01 10:47:00)Работаю с екселем, потом закрываю его, но процесс остается висеть. Как его еще можно закрыть? Делаю вот как:
RangeMatrix := Unassigned;
XLApp.Workbooks.Close;
XLApp.Quit;
XLAPP := Unassigned;
XLAPP := Null;
Уже все испробовала - не помогает :((
Майя (2004-12-01 13:29:00) [1]Да, действительно, после VarClear(Excel); процесс исчезает
Но после этого я пытаюсь вновь создать объект и обратиться к другому листу того же самого документа.
Если обращаюсь к тому же что и раньше - все ок
А если к другому - выдается ошибка
Метод Activate объекта Range отработал некорректно
На вот этой строке:
Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
Майя (2004-12-01 13:18:00) [2]Создавала
XLApp := CreateOleObject('Excel.Application');
try
// Hide Excel
XLApp.Visible := False;
// Open the Workbook
XLApp.Workbooks.Open(AXLSFile);
// Sheet := XLApp.Workbooks[1].WorkSheets[1];
Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[list]; //номер листа, с которого читаем данные
Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
// Get the value of the last row
x := XLApp.ActiveCell.Row;
// Get the value of the last column
y := XLApp.ActiveCell.Column;
// Set Stringgrid's row &col dimensions.
AGrid.RowCount := x;
AGrid.ColCount := y;
// Assign the Variant associated with the WorkSheet to the Delphi Variant
RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
// Define the loop for filling in the TStringGrid
Но я уже написала
Sheet:=Unassigned;
и все равно процесс остается
olookin (2004-12-01 12:24:00) [3]А я делаю так:
if not VarIsEmpty(Excel) then begin
Excel.Quit;
VarClear(Excel);
end;
И ничего не висит в списке процессов. Насчет [1] про создание листов и тому подобного. Если имеется в виду создание в рамках объекта ExcelApplication, то это можно делать как угодно долго и ничего очищать дополнительно не приходится.
YurikGL (2004-12-01 11:38:00) [4]Кроме XLAPP больше никаких объектов не создавала? Типа XLWorkSheet?
Если создавала, то их тоже надо очищать.