![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Корректное закрытие Excel [D6, Paradox]
Glivera © (2006-06-21 00:00:00)Подскажите как нужно корректно закрывать Excel. Пишу такой код:
XLApp := CreateOleObject('Excel.Application');
XLApp.Visible:= True;
XLApp.sheetsInNewWorkbook:=1;
XLApp.Workbooks.add;
Sheet := XLApp.Workbooks[1].WorkSheets[1];
Sheet.activate;
Sheet.cells.item[1,1]:='Проверка';
XLApp.WorkBooks[1].SaveAS('d:\My.xls');
XLApp.Quit;
XLAPP := Unassigned;
Sheet := Unassigned;
Суть проблемы в том, что этот файл потом можно открыть только после перезагрузки компа. Подскажите что сюда нужно добавить\убрать. Заранее спасибо.
Ломброзо (2006-06-21 01:21:00) [1]запоминать указатели на все интерфейсы и аккуратно их релизить
try
pXLApp := CreateOleObject('Excel.Application');
pWorkbooks = pXLApp.Workbooks;
pWorkbook = pWorkbooks.Add();
finally
if (pWorkbook <> nil) then
begin
// Release
end;
if (pWorkbooks <> nil) then
begin
// Release
end;
if (pXLApp <> nil) then
begin
pXLApp.Quit;
// Release
end;
end
некоторые горячие головы умеют вычислять идентификатор процесса COM-сервера и на всякий случай прибивать процесс Excel, и в этом тоже есть смысл