Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2019, 08:29   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
Стрелка Delphi Word w.quit(false) зависает на несколько минут

w: OleVariant;

Создается объект W:=CreateOleObject('Word.Applicatio n');

Записываются в него данные, далее конвертируется результат в пдф

Код:
w.ActiveDocument.ExportAsFixedFormat('1.pdf',wdExportFormatPDF,true,                                               
                 wdExportOptimizeForPrint,wdExportAllDocument,1,1,wdExportDocumentContent,
                  true,true,wdExportCreateNoBookmarks,true,true,false);
Отрывается пдфка.

Дальше, идет пробела с закрытием winword.exe. Если использовать w.quit(false); то идет зависание на несколько минут. Если без параметра false, закрывается быстро, но вылазит диалоговое окно с сохранением, которое мне не нужно, и пока его не закроешь висит процесс winword.exe

DisplayAlerts не помогает.

Как закрыть файл по аналогии с w.quit(false); только чтоб не зависало?
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 16.05.2019, 08:39   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

wdDoNotSaveChanges в quit или w.ActiveDocument.Close(wdDoNotSaveC hanges) перед quit не?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.05.2019, 09:16   #3
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
wdDoNotSaveChanges в quit или w.ActiveDocument.Close(wdDoNotSaveC hanges) перед quit не?
Пробовал такие варианты
w.DisplayAlerts := false;
w.Visible:=false;

if VarIsEmpty(w) = false then
begin
w.Quit;
w := 0;
end;

w.ActiveDocument.Close(false) ;

w.quit(false,0);

w.quit(false);

w.ActiveDocument.Close(wdDoNotSaveC hanges);
w.quit(wdDoNotSaveChanges);

Все зависают на несколько минут. Только этот срабатывает

w.Quit;
без параметра, но вылазит диалоговое окно, которое не нужно и висит процесс. Уже не хз куда рыть, почему он не хочет его сразу закрыть и какие есть еще то варианты, и возможно ли это вообще?
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 16.05.2019, 14:33   #4
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

С чем может быть связана проблема?
a.n.o.n.i.m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В школе N уроков, по длительности M минут, перемены длятся по P минут. Выведите на экран, что будет через L минут после начала занятий в школе Jenee Паскаль, Turbo Pascal, PascalABC.NET 4 25.02.2017 10:53
Application.Quit и Windows Task Scheduler Z@kat Microsoft Office Excel 2 16.11.2012 09:16
VirtualProtect принимает значение False(Delphi 7). Как исправит? bomdom Помощь студентам 8 20.09.2012 17:39
Несколько таблиц в Word FearDog Общие вопросы Delphi 1 29.02.2012 21:32
часы показывают m часов, n минут и k секунд. Каковы будут показатели часов через p часов, q минут и r сек Паскалька^^ Помощь студентам 3 11.10.2009 19:41