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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2012, 18:24   #1
NIK2604
 
Регистрация: 15.04.2012
Сообщений: 9
По умолчанию Word.Application

Доброго времени суток!!!
У меня возникла небольшая проблема с сохранением документа Word из моей программы.
Использую OleObject.
Прописываю команду SaveAs(Имя файла). Программа выдает ошибку "Вызов отклонен".
Перепробовал все. Подскажите, в чем проблема?

P.S. И еще один маленький нюанс, при создании документа выходит уведомление "Неверно указана единица измерения". Это можно как то убрать?
NIK2604 вне форума Ответить с цитированием
Старый 06.06.2012, 18:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ИМХО если пишет что вызов отклонен значит Ворд чем-то занят. Например ждет от пользователя какого-то ввода. Возможно шаблон кривоват...
Так сразу не скажешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.06.2012, 18:43   #3
NIK2604
 
Регистрация: 15.04.2012
Сообщений: 9
По умолчанию

Я не беру шаблон, просто открываю документ, добавляют текст и пытаюсь сохранить в другом месте и под другим именем.
NIK2604 вне форума Ответить с цитированием
Старый 06.06.2012, 19:08   #4
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Код глянуть можно?
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 06.06.2012, 20:01   #5
NIK2604
 
Регистрация: 15.04.2012
Сообщений: 9
По умолчанию

Конечно можно...
------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
WApp,TemDoc: Variant;
n: integer;
begin
WApp:=CreateOleObject('Word.Applica tion');
WApp.Documents.Open('D:\eNIKmatic\П рограммирование\TrainInspector\Расп исание\TrainTemplate.docx');
WApp.Selection.TypeText('Заголовок' );
WApp.Selection.TypeParagraph;
WApp.Selection.TypeText('Подзаголов ок');
WApp.Selection.TypeParagraph;
WApp.Selection.TypeParagraph;
for n:=1 to 15 do begin
WApp.Selection.TypeText('Строка №'+IntToStr(n)+#9+'00:00'+#9+'00 '+#9+'00:00'+#9+'00'+#13);
end;
WApp.Visible:=true;
TemDoc:=WApp.ActiveDocument;
TemDoc.SaveAs('D:\eNIKmatic\Програм мирование\TrainInspector\Расписание \РТИЩЕВО\9.docx');
WApp.Documents.Close;
WApp.Quit;
WApp:=UnAssigned;
end;
------------------------------------------------------------
NIK2604 вне форума Ответить с цитированием
Старый 06.06.2012, 20:18   #6
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Проверил у себя и был крайне изумлен тем, что рабочий и проверенный (на работе) код дома работать отказывается. Рассказываю.

1. Для начала сразу после CreateOleObject пишем WApp.Visible := True; (ну, чтобы постоянно не лазать в диспетчер задач и не снимать лишние процессы).

2. После того, как Word становится видимым - видим то самое прекрасное "Неверно указана единица измерения" (именно из-за этого MessageBox'а у тебя и появлялось "Вызов был отклонен" - как верно заметил Stilet - Word от тебя ожидал реакции).

3. Проводя дальнейшие бесчеловечные эксперименты, можно увидеть данное сообщение даже вот так:
===========
W := CreateOleObject('Word.Application') ;
W.Visible := True;
W.DisplayAlerts := 0;
exit;
===========
Даже безо всяких открытий документов, не говоря об их сохранении.

4. Становится безумно интересно, задаем вопрос всезнающему гуглу, и он нам советует странное: запустить Word руками, с панели "Форматирование" убрать кнопку "Междустрочный интервал", закрыть Word, и дальше всё наладится.
Очень сильное колдунство, но - работает.

Когда-нибудь, как время будет, попробую забороть это (:
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 06.06.2012, 22:40   #7
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Продолжение разговора - убираем кнопку самостоятельно, из своей программы, без плясок вокруг всех компов, где будем запускать прогу:

http://www.ych-group.ru/232/1166/#continue
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дозапись в word или соеденить два word фала Midnayt C# (си шарп) 1 09.05.2012 15:17
перенести документ Word (таблица) в MS Excel c сохранением форматирования или обеспечить всплывающие подсказки в Word Serge_Bliznykov Microsoft Office Word 6 11.07.2011 11:02
?? Application Татьяна_16 Компоненты Delphi 7 16.06.2011 16:44
Вызов процедуры из Word.application ? NIKOLASCS Microsoft Office Excel 5 13.11.2009 00:21
Работать в Word, не открывая документы (работа с закрытыми документами Word) Георгиевич Microsoft Office Word 10 07.09.2009 11:19