IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Delphi & Msoffice
сообщение
Сообщение #1


Гость






Срочно нужна ваша помощь:
Запускаю шаблон Exсel из программы, набиваю данные, сохраняю документ,закрываю Excel. Все вроде нормально, но пока не закрою свою прогу, Excel
висит в процессах, а след-но нет возможности просмотреть созданные документы. Не всегда помогает и выход из моей программы.
Как корректно проверить наличия Excel в процессах и завершить его?
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






mj :no:
Код
App := nil;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






К моему большому сожалению:
на App:=null эта гадость тоже не реагирует,
а на App:=nil выдает несоответствие типов.
Но все равно всем спасибо за помощь.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Adminь
****

Группа: Пользователи
Сообщений: 803
Пол: Мужской
Реальное имя: Евгений

Репутация: -  5  +


Цитата(yur @ 24.03.05 10:36)
К моему большому сожалению:
  на  App:=null эта гадость тоже не реагирует,
  а на  App:=nil выдает несоответствие типов.
Но все равно всем спасибо за помощь.

Нужно присвоить null всем переменным, в которых ты когда либо держал объекты экзеля...
Дело в том что приложение будет закрыто тока когда количество ссылок на его объекты будет равным 0...

Код
procedure TForm1.Button1Click(Sender: TObject);
var
 V: Variant;
begin
 V := CreateOleObject('Excel.Application');
 V.Visible := True;
 V.Quit;
end;

При нажатии кнопки приложение загружаеться и выгружаеться...

Напомню что публиковать e-mail адреса для таких целей запрещено, если хотите, можете просто подписаться на обновление своей темы...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Попробовал вставить Quit в цикл, где создаются документы - не помогает.
Excel все равно висит в процессах. Где я не то делаю?
Вот укороченный код:

Код
procedure TPrintDoc.PrintW(Sender: TObject);
var i: integer;
   File_name: string;
begin
 App:=CreateOleObject('Excel.Application');
 For i:=1 to 10 do begin
   App.WorkBooks.Add('Shablon.xlt');
   App_work:=App.WorkBooks[1].WorkSheets[1];
   App_work.Cells[1,1].Value:=. . .;

   . . .
   . . .
   . . .

   App_work.Cells[20,1].Value:=. . .;    
   File_name:='Doc.xls';
   App.ActiveWorkBook.Close(True,File_name);
   App.Quit;
 end;
   try
      App := GetActiveOleObject('Excel.Application');
      App.Quit;
    except
    end;
end;


В конце Quit оставил для пущей уверенности. Может бах в самой Delphi?
Пишу на Delphi 7 Enterprise.

Код в теги...

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Adminь
****

Группа: Пользователи
Сообщений: 803
Пол: Мужской
Реальное имя: Евгений

Репутация: -  5  +


Цитата(YurKaluga @ 25.03.05 12:21)
Попробовал вставить Quit  в цикл, где создаются документы - не помогает.
Excel все равно висит в процессах. Где я не то делаю?
Вот укороченный код:

В конце Quit оставил для пущей уверенности. Может бах в самой Delphi?
Пишу на Delphi 7 Enterprise.

Код в теги...

Ну судя по этому коду при выходе из функции у тя будет как минимум 2-3 ссылки на объекты экзеля...
Для начала перенеси все переменные из глобальных в процедуру...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
yur   Delphi & Msoffice   23.03.2005 18:07
NX   Попробуй следующее: procedure TForm1.FormClose…   23.03.2005 18:34
volvo   var ExcelApp : Variant; begin  try …   23.03.2005 18:34
yur   Может как-то по-другому его открывать? С помощью G…   23.03.2005 19:11
volvo   Попробуй перед закрытием - отсоединить Excel: try …   23.03.2005 19:45
Guest   На вставку Disconnect'a дельфя выругалась: Pr…   23.03.2005 19:57
mj   App := null;   23.03.2005 23:40
volvo   mj :no: App := nil;   24.03.2005 0:43
yur   К моему большому сожалению: на App:=null эта …   24.03.2005 12:36
YurKaluga   Я тут решил зарегистрироваться ;) Если будут еще…   24.03.2005 15:43
mj   Нужно присвоить null всем переменным, в которых т…   24.03.2005 20:32
YurKaluga   Спасибо Adminь за напоминание (честно говоря не зн…   25.03.2005 4:55
YurKaluga   Попробовал вставить Quit в цикл, где создаются до…   25.03.2005 14:21
mj   Ну судя по этому коду при выходе из функции у тя …   27.03.2005 4:27
YurKaluga   А, если я так не могу сделать? У меня в другой про…   28.03.2005 11:46
YurKaluga   А вообще-то, с локальными переменными вроде работа…   28.03.2005 11:54
YurKaluga   :D Огромное СПАСИБО всем, кто помогал! Особенн…   28.03.2005 12:50
Guest   Я тут подумал, а что если проблема в том, что я за…   26.03.2005 3:49


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 13.09.2025 13:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name