Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.043 c
6-1112960035
}|{yk
2005-04-08 15:33
2005.07.11
Проблема с устновкой Indy 10


9-1111856084
$SerG$
2005-03-26 19:54
2005.07.11
Maya есть у кого?


3-1117141875
Zahar
2005-05-27 01:11
2005.07.11
Помогите с SQL-запросом.


3-1117090760
Tomkat
2005-05-26 10:59
2005.07.11
Скрипт на базе штатными средствами


1-1118357250
Сергей1
2005-06-10 02:47
2005.07.11
Работа с BitMap





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский