Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизЗакрытие OLe объекта Найти похожие ветки
← →
Майя (2004-12-01 10:47) [0]Работаю с екселем, потом закрываю его, но процесс остается висеть. Как его еще можно закрыть? Делаю вот как:
RangeMatrix := Unassigned;
XLApp.Workbooks.Close;
XLApp.Quit;
XLAPP := Unassigned;
XLAPP := Null;
Уже все испробовала - не помогает :((
← →
YurikGL © (2004-12-01 11:38) [1]Кроме XLAPP больше никаких объектов не создавала? Типа XLWorkSheet?
Если создавала, то их тоже надо очищать.
← →
olookin © (2004-12-01 12:24) [2]А я делаю так:
if not VarIsEmpty(Excel) then begin
Excel.Quit;
VarClear(Excel);
end;
И ничего не висит в списке процессов. Насчет [1] про создание листов и тому подобного. Если имеется в виду создание в рамках объекта ExcelApplication, то это можно делать как угодно долго и ничего очищать дополнительно не приходится.
← →
Майя (2004-12-01 13:18) [3]Создавала
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;
и все равно процесс остается
← →
Майя (2004-12-01 13:29) [4]Да, действительно, после VarClear(Excel); процесс исчезает
Но после этого я пытаюсь вновь создать объект и обратиться к другому листу того же самого документа.
Если обращаюсь к тому же что и раньше - все ок
А если к другому - выдается ошибка
Метод Activate объекта Range отработал некорректно
На вот этой строке:
Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c