Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.08.14;
Скачать: 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 вся ветка

Текущий архив: 2011.08.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
6-1240371968
MultIfleX
2009-04-22 07:46
2011.08.14
pcap packet format


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


15-1303457253
>|<
2011-04-22 11:27
2011.08.14
Посоветуйте компоненты для раскраски SQL


15-1303317238
stas
2011-04-20 20:33
2011.08.14
Regexp из C# в Delphi


1-1261590906
Alex_C
2009-12-23 20:55
2011.08.14
Windows 7 64 bit и SetLength