Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по WordApplication


Чипырик ©   (2009-05-17 12:23:00) 

Доброго времени суток.
У меня такая проблемма
Из своего приложения я создаю Word документ и вношу в него данные.
На этом этапе все работает отлично.
Но если пользователь закрывает Word, а потом повторно вызывает функцию создания Wоrd документа, то выскакивает сообщение об ошибке: " Сервер RPC недоступен ".
И создание документа возможно только после перезапуска программы.
Как это исправить?

Создаю документ следующим кодом:
WinExec('Word.exe', SW_RESTORE);
WordApplication1.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordApplication1.Connect;
WordApplication1.Visible:=True;


Чипырик   (2009-05-17 14:49:00) [1]

все нашел косяк...
все происходило из-за того, что я не отконнективался от ворда...
добавил в конце строчку
WordApplication1.Disconnect;
и ошибка устранилась


Чипырик   (2009-05-17 14:48:00) [2]

2 Сергей М.
Если честно, мне кажется, что ошибка возникает вовсе не из-за этого.
сейчас у меня
AutoConnect:=True
ConnectKind:= ckRunningOrNew

и код
WordApplication1.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordApplication1.Visible:=True;

// занесение информации в документ
Selection.InsertAfter('бла-бла-бла');
WordFont1.ConnectTo(Selection.Font);
WordFont1.Bold:=0; WordFont1.Size:=12; WordFont1.Name:='Courier New';
Selection.Collapse(Direction);


Сергей М.   (2009-05-17 14:41:00) [3]


> AutoConnect - автосоединение


Тогда при AutoConnect = True зачем ты вызываешь метод Connect ?

> ConnectKind:= ckRunningOrNew


Вот сначала должен коннект произойти (авто или "вручную" - неважно, к существующему или новому экземпляру - тоже не столь важно), и только потом следует манипулировать прочими мктодами и свойствами экземпляра, к к оторому ты подключился


Чипырик   (2009-05-17 14:34:00) [4]

2 Сергей М.
Вобщем-то я так полагаю.
AutoConnect - автосоединение
ConnectKind:= ckRunningOrNew - тип соединения (Запустить ворд или создать в ворде новый документ)
А в справке что-то не нашел


Сергей М.   (2009-05-17 14:27:00) [5]


> AutoConnect:=True(пробовал и False)
> ConnectKind:= ckRunningOrNew


А справку читать не пробовал, что означает каждое значение каждого из этих свойств ?


Чипырик   (2009-05-17 14:13:00) [6]

2 Сергей М.
AutoConnect:=True(пробовал и False)
ConnectKind:= ckRunningOrNew

2 Palladin
а как?
Просто я использовал пример при написании этого кода.


Сергей М.   (2009-05-17 14:07:00) [7]


> Чипырик ©   (17.05.09 13:59) [4]


Чему равны AutoConnect и ConnectKind ?


Palladin   (2009-05-17 14:04:00) [8]

на кой тебе Connect? почему бы не создать свой экземпляр?


Чипырик   (2009-05-17 13:59:00) [9]

Поменял...
Та же ошибка


Сергей М.   (2009-05-17 13:56:00) [10]


> WordApplication1.Documents.Add(EmptyParam, EmptyParam, EmptyParam,
>  EmptyParam);
> WordApplication1.Connect;


Меняй местами


Чипырик   (2009-05-17 13:47:00) [11]

2 Сергей М.
Точно. Убрал. Но проблема не решилась


Сергей М.   (2009-05-17 13:40:00) [12]


> WinExec('Word.exe', SW_RESTORE);


Это совершенно ни к чему.


Наверх

Титульная страница Поиск, карта сайта Написать письмо