powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Excel не закрывается
4 сообщений из 4, страница 1 из 1
Excel не закрывается
    #39748333
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.

Проблема отличающаяся от типичного "Excel не закрывается".

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

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
procedure TFormMain.ExportToClick(Sender: TObject);
begin
  ExcelSave.FileName := '';
  if (not CheckExcelRun) and (ExcelSave.Execute) then begin
    ExcelFileName := ExcelSave.FileName;
    CreateExcelFile();
  end
  else begin
      MyExcel := Unassigned;
      Application.MessageBox(
            PWChar('Закройте открытые копии Microsoft Excel!'),
            PWChar('Ошибка'), MB_ICONERROR);
  end;
end;

function CheckExcelRun : boolean;
begin
  try
    MyExcel := GetActiveOleObject(ExcelApp);
    Result := True;
  except
    Result := false;
  end;
end;




Вызвав ExportToClick он получает сообщение о том, что надо закрыть все открытые Excel. (Зачем? - Так надо.)
Он закрывает Excel, однако он не выгружается из процессов, из-за чего при повторном вызове ExportToClick он опять переходит на else.

Вопрос, почему после вызова MyExcel := GetActiveOleObject(ExcelApp) и MyExcel := Unassigned эксель все равно не выгружается?
...
Рейтинг: 0 / 0
Excel не закрывается
    #39748340
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tim Woo,

Скрытая ссылка остается.
Оберни создание инстанции в отдельную процедуру с out параметром.
...
Рейтинг: 0 / 0
Excel не закрывается
    #39748345
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Excel не закрывается
    #39749924
Tim Woo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так. Эту проблему я победил. Но теперь есть другая.
После вызова:
MyExcel.Visible := True;
Появляется окно эксель которое я создал. Пользователь делает в нем какие-то манипуляции (сохраняет, что-то изменяет и тд). После этого он закрывает окно экселя через "крестик". Окно закрывается, но висит в процессе.
Вопрос, как правильно добить эксель если окно закрыл пользователь? (Как поймать ивент, что пользователь закрыл окно?)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Excel не закрывается
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]