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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2009, 12:11   #1
Teksa
Пользователь
 
Регистрация: 24.08.2007
Сообщений: 88
По умолчанию Отлов "повисания"

Здравствуйте, ворд виснет на открытии документа, (т.е. сообщений об ошибках и прочего нету(( ) открывал этот документ вручную - вывалилось сообщение о восстановлении документа после серьезной ошибки... сдается мне что оно и в прошлый раз вываливалось.. вот как бы сделать так что процедурка кусок кода которой ниже приведен завершалась в случае долгого молчания ворда... ну или еще как нибудь парировать эту неприятность...

Код:
WordApplication1.Documents.Open(patch,
  EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordApplication1.ChangeFileOpenDirectory(copy(paramstr(0),0,length(paramstr(0))-12)+'temp\');
 filename:= ExtractFileName(s_patch)+'.txt';
WordApplication1.ActiveDocument.SaveAs(FileName, FormatText, no, nothing, yes, nothing,no,
                                       no,no,no,no,cp1251,no,no,CRLF,no);


WordApplication1.Documents.Close(no,no,no);
wordapplication1.Visible:=false;
ЗЫ на начало процедуры wordapplication1.Visible так же false но при WordApplication1.Documents.Close(no ,no,no); упорно пытается проявится, поэтом повторяю
Teksa вне форума Ответить с цитированием
Старый 28.04.2009, 12:23   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Думаю, что никак. Открытие документа происходит синхронно с кодом программы. Пока не откроется, другие строки не будут выполняться. Как я понял, это Delphi. Может стоит попробовать открывать документ в отдельном потоке? И следить за потоком? Только как это делать я не знаю
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 28.04.2009, 13:32   #3
Teksa
Пользователь
 
Регистрация: 24.08.2007
Сообщений: 88
По умолчанию

мда( с реализацией надолго закопаюсь, а проект и так уже осточертел... чего нибудь попроще бы....
Teksa вне форума Ответить с цитированием
Старый 30.04.2009, 20:40   #4
Teksa
Пользователь
 
Регистрация: 24.08.2007
Сообщений: 88
По умолчанию

ну собственно выкрутился из ситуевины таким образом: отловить неудается (либо слишком сложно, не стоит оно того),поэтому родил таймер который через н секунд после того как пошел этот кусок кода делает ворд видимым, в целом проблему решает - в случае если нужен тырк мышкой по вордовскому диалогу - самое оно.
Teksa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах mihali4 Свободное общение 1 17.01.2009 01:43
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49