Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Вниз

Excel остается в процессах   Найти похожие ветки 

 
ruslan_as   (2004-09-15 11:13) [0]

Помогите разобраться, что не правильно сделано. Открываю шаблон Excel, заполняю его и сохраняю под другим именем и показываю его:

Excel := CreateOleObject("Excel.Application");
Excel.DisplayAlerts := false;
Excel.WorkBooks.Open(ExtractFileDir(Application.ExeName)+"\Month.xlt");
Sheet := Excel.Application.Worksheets.Item[1];
.... Заполняю данными

Excel.Visible := True;
Excel.ActiveWorkbook.SaveAs(OS.FileName+".xls");

Но после закрытия пользователем файла остается процесс "Excel". Почему?


 
Суслик ©   (2004-09-15 11:17) [1]

У меня были аналогичные проблемы.
Решил так:

  fApp.Visible := True;
  fApp.Interactive := True;
  fApp.DisplayAlerts := True;
  fApp.ScreenUpdating := True;
  fApp.Application.WindowState := TOLEEnum(xlMaximized);
  fApp.UserControl := True;


Скажу честно - не знаю какая из этих строк решает проблему. Такая комбинация строк была найдена перебором, т.к. в доке ничего путного не написано. Про UserControl мне сказали на Королевстве.


 
Romkin ©   (2004-09-15 13:03) [2]

Ну-ну. Думаю, вызов Excel.Quit все же проще?


 
Суслик ©   (2004-09-15 13:32) [3]


> Ну-ну. Думаю, вызов Excel.Quit все же проще?

читаем внимательно вопрос :)))

а именно


> Но после закрытия пользователем файла остается процесс "Excel".
> Почему?


какой, говоришь, здесь Quit?


 
Romkin ©   (2004-09-15 13:47) [4]

Упс. А действительно, если закрыть не сам excel, а именно книгу - остается...
Но Excel.UserControl := True; Решает проблему :)


 
суслик ©   (2004-09-15 13:57) [5]


> Но Excel.UserControl := True; Решает проблему :)

да, скорее всего именно эта строка и решает.


 
YurikGL ©   (2004-09-15 21:39) [6]

Excel := unassigned в конце добавить надо...

А лучше

try

Excel:=Create.....

finally
Excel := unassigned
end;


 
Суслик ©   (2004-09-16 09:33) [7]


>  [6] YurikGL ©   (15.09.04 21:39)
> Excel := unassigned в конце добавить надо...

Зачем?
И так прекрасно очистится при выходе из метода.


 
YurikGL ©   (2004-09-16 12:05) [8]


> Суслик ©   (16.09.04 09:33) [7]

Бог его знает этот ексель... Просто всегда работал так и проблем никогда не возникало.


 
r_nikola ©   (2004-09-16 18:04) [9]

YurikGL прав!

Только так Excel освободится и исчезнет из процессов. Простого Quit недостаточно.

Тут недавно уже была похожая ветка. Много чего там предлагали, но Excel := unassigned там так и не было предложено.
Потом сам с этим разбирался, прочитал в хелпе, что только так освободится OLE-объект (он освободится сам, когда на него не будет ссылок, а ссылку мы как раз этой строчкой и убираем).


 
Суслик ©   (2004-09-17 14:59) [10]


> только так освободится OLE-объект

ерунда, все интерфесы при выходе из области видимости очищаются сами...
и при выходе из процедуры локальная переменная excel очистится замечательно.



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

Форум: "Corba";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.117 c
14-1118065439
Nikolay M.
2005-06-06 17:43
2005.07.11
Кто-то интересовался, как можно начать работать без опыта


1-1118835220
Uzver32.dll
2005-06-15 15:33
2005.07.11
ROR&ROL


1-1118903800
Yurazz
2005-06-16 10:36
2005.07.11
Как форме TCustomDockForm задать размеры....


1-1118759629
Pasha L
2005-06-14 18:33
2005.07.11
альтернатива processMessages


4-1116042693
КиТаЯц
2005-05-14 07:51
2005.07.11
Драйвер принтера (установлен ли?)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский