Вниз
Скачать: 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.007 c
2-1304482497
Moli
2011-05-04 08:14
2011.08.14
как переписать формулу с Q basik на Delphi?


2-1302677107
MrBadge
2011-04-13 10:45
2011.08.14
Рандомный цвет


1-1261613044
Fosgen
2009-12-24 03:04
2011.08.14
array [] of procedure() of object


15-1303285736
OW
2011-04-20 11:48
2011.08.14
WM_COPYDATA, предел есть на кол-во пересылаемой инф-ции?


1-1261857464
Naivety
2009-12-26 22:57
2011.08.14
Проблема с методом Гаусса




   Наверх