Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Delphi + Word - проблема диалоговых окон, в фоновом режиме Word выдает свои диалоги
Jsn
Вставить ник
сообщение 1:02:2008, 13:50
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 4
Регистрация: 1:02:2008
Пользователь №: 15 131
Специализация: Delphi, MSSQL



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


Здравствуйте!
Проблема вот какая - создаю TWordApplication, в фоне открываю файл (документ) и выдаю его на печать.
Все работает. Но мне надо, чтобы при ошибках не выскакивали интерактивные окна Word
(например: "Во время последнего открытия документа произошла серьезная ошибка - восстановить?",
"Размеры раздела выходят за границы печати" и т.п.). Перепробовал кажется всё, начиная от DisplayAlerts...
Вот кусок кода:
Код
  Application1 := TWordApplication.Create(nil);
  with Application1 do
  begin
    try
      fn := aFileName;
      Visible := False;
      fn1 := False;
      fn2 := True;
      DisplayAlerts := wdAlertsNone;
      Documents.Open(fn, fn1, fn2, fn1, EmptyParam, EmptyParam,
      EmptyParam, EmptyParam, EmptyParam, EmptyParam); // тут бывают ошибки на открытие
      fn := 1;
      Documents.Item(fn).Activate;
      PrintOut(fn1);  // а тут ошибки печати
      Result := True;
    except
      on E: Exception do
         LogError('Error printing: ' + FormatDateTime(DateTimeString, Now) + ' '
           + aFileName + ' - ' + E.Message);
    end;
end;


Так вот ворд упорно выводит свои диалоги...
Delphi 5 и 7, Word 97-2000-XP - результат один

Не посоветуете, как добиться ПОЛНОСТЬЮ фоновой работы?
Спасибо!
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 6)
Morpheus
Вставить ник
сообщение 1:02:2008, 13:53
Цитата Ответить 


очень злой модератор
*****

Группа: Lotus team
Сообщений: 2 666
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807
Специализация: разработчик всякой хрени



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


1. не юзайте компонентов, работайте как с оле-сервером
2. свойство зделайте word'y свойство Hidden = true
Подняться вверх 
 
Сообщение #2
Jsn
Вставить ник
сообщение 1:02:2008, 14:31
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 4
Регистрация: 1:02:2008
Пользователь №: 15 131
Специализация: Delphi, MSSQL



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


Цитата(Morpheus @ 1:02:2008, 16:53 ) *
1. не юзайте компонентов, работайте как с оле-сервером
2. свойство зделайте word'y свойство Hidden = true


Не получается sad.gif
1. Пробовал CreateOleObject('Word.Application') и CreateOleObject('Word.Basic') - тот-же результат.
2. Свойства Hidden нет у TWordApplication и не "поддерживается automation объектами"
У Application есть свойство Visible, я его ставлю, Word не виден, но свои диалоги сует...
Досадно...
Подняться вверх 
 
Сообщение #3
Morpheus
Вставить ник
сообщение 1:02:2008, 21:30
Цитата Ответить 


очень злой модератор
*****

Группа: Lotus team
Сообщений: 2 666
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807
Специализация: разработчик всякой хрени



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


Для: Jsn
да , перепутал Hiden c Visible...

а разве делфийный обработчик Try Except не ловит ошибку?
Подняться вверх 
 
Сообщение #4
Jsn
Вставить ник
сообщение 4:02:2008, 07:10
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 4
Регистрация: 1:02:2008
Пользователь №: 15 131
Специализация: Delphi, MSSQL



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


Цитата(Morpheus @ 2:02:2008, 00:30 ) *
а разве делфийный обработчик Try Except не ловит ошибку?


Ловит, но потом sad.gif Сначала Word задает свои вопросы, а вот если там отказаться, то происходит ошибка, которую уже ловит Дельфи...
Подняться вверх 
 
Сообщение #5
alexey
Вставить ник
сообщение 14:02:2008, 11:05
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 33
Регистрация: 30:04:2004
Пользователь №: 470



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


К сожалению плохо помню, но от этих диалогов точно можно отказаться, только надо правильно заполнить параметры, передаваемые кажется при открытии документа, или при печати. В общем решение было, если найду - отпишу. Смотри справку во встроенном Basic-e, там все расписано smile.gif
Подняться вверх 
 
Сообщение #6
Jsn
Вставить ник
сообщение 14:02:2008, 13:48
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 4
Регистрация: 1:02:2008
Пользователь №: 15 131
Специализация: Delphi, MSSQL



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


Цитата(alexey @ 14:02:2008, 14:05 ) *
К сожалению плохо помню, но от этих диалогов точно можно отказаться, только надо правильно заполнить параметры, передаваемые кажется при открытии документа, или при печати. В общем решение было, если найду - отпишу. Смотри справку во встроенном Basic-e, там все расписано smile.gif


Измучал уже всю справку, например "DisabledItems" там нету... Появилась идея помучать реестр.
Если что-то найдёте - отпишите, плз smile.gif
Подняться вверх 
 
Сообщение #7


Ответить  Новая тема 

 

RSS Текстовая версия Сейчас: 17:05:2008 - 06:35
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net