Вниз
Скачать: CL | DM;

Delphi & Excel 2007   Найти похожие ветки 

 
Дмитрий Тимохов   (2011-04-20 16:45) [0]

Добрый день.

Тема мышами изгрызена, но у меня есть неперевариваемая проблема, поэтому, решил спросить...

Ситуация:
1. Работаю с Excel 2007 через позднее связывание из Delphi 7.
2. Делаю как положено, типа того:

 
XLApp:=CreateOleObject("Excel.Application");
...
XLApp:=UnAssigned;


Проблема:
1. На одном компьютере пользователя после данной операции в памяти не остается Excel.
2. На точно таком же (как говорят - версии всего и вся сравнивали - говорят, идентично все) остается.

Вопросы:
1. Сталкивался ли кто-то с такой проблемой?
2. Что делать...


 
oldman ©   (2011-04-20 16:54) [1]


> в памяти не остается Excel.


а должен?


 
Дмитрий Тимохов   (2011-04-20 16:55) [2]

как раз не должен.
виноват, не написал, что считаю верным.

после XLApp := Unassigned процесс Excel должен изгоняться из памяти.


 
Дмитрий Тимохов   (2011-04-20 16:57) [3]

чорт, что-то я не то говорю, конечно Quit вызываю перез XLApp := Unassinged!!!


 
Ega23 ©   (2011-04-20 17:08) [4]


> после XLApp := Unassigned процесс Excel должен изгоняться
> из памяти.


Там нюансы есть.
Точно навскидку не вспомню, но что-то вроде (это гипотеза, давно дело было) если в самом экселе диалог сохранения вызвали. Или автосохранение сработало.
В общем, попробуй в эту сторону посмотреть.


 
Дмитрий Тимохов   (2011-04-20 17:15) [5]

Создаю так

fApp := CreateOleObject("Excel.Application");
fApp.Visible := False;
fApp.Interactive := False;
fApp.DisplayAlerts := False;
fApp.ScreenUpdating := False;
fApp.SheetsInNewWorkbook := 1;


 
Ega23 ©   (2011-04-20 17:24) [6]


> Создаю так


Дима, я вообще не помню, давно дело было. Но вот какие-то нюансы выплывали.
Может у них параллельно Excel был запущен, а потом закрыт?
Проще всего - напиши тестик -

fApp := CreateOleObject("Excel.Application");
fApp.Visible := False;
fApp.Interactive := False;
fApp.DisplayAlerts := False;
fApp.ScreenUpdating := False;
fApp.SheetsInNewWorkbook := 1;
fApp.Quit;
fApp := Unassigned;


и запусти на обеих машинах. при этом чтобы гарантированно до теста никаких EXCEL.EXE в процессах не болталось.


 
Дмитрий Тимохов   (2011-04-20 17:28) [7]

Ок, завтра посмотрю.
Произвожу просто предварительную разведку - может эта проблема всем известна уже..


 
Игорь Шевченко ©   (2011-04-20 17:34) [8]

XLApp:=CreateOleObject("Excel.Application");
...
XLApp.Quit;
XLApp:=nil;

работает без проблем в течение многих лет с разными версиями Excel на разных компьютерах разных пользователей.


 
Дмитрий Тимохов   (2011-04-20 17:37) [9]

Игорь, у меня по сути то же самое...
Я просто в начале сказал не верно.

Только XLApp := Unassinged, а не nil. Вроде это значения иметь не должно?
Так тоже завтра попробую.


 
Игорь Шевченко ©   (2011-04-20 17:40) [10]

Дмитрий Тимохов   (20.04.11 17:37) [9]

Я конечно ошибся, не nil, а null



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.005 c
10-1175845053
vir
2007-04-06 11:37
2011.08.14
ActiveX -> JavaScript


15-1303461362
tesseract
2011-04-22 12:36
2011.08.14
Расчет стоимости владения оборудованием.


15-1303631334
IPranker
2011-04-24 11:48
2011.08.14
Что такое CRC?


15-1303504190
Юрий
2011-04-23 00:29
2011.08.14
С днем рождения ! 23 апреля 2011 суббота


1-1261483261
StriderMan
2009-12-22 15:01
2011.08.14
SetBounds у Child ов TScrollBox а




   Наверх