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

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

Не получается сформировать документ Word


СержК ©   (2007-04-23 13:04:00) 

Мастера подскажите.
Пытаюсь сформировать документ Word (делаю это первый раз).

На форму бросил: WordApplication1, WordDocument1.

У WordApplication1 св-ва AutoConnect и AutoQuit - true, ConnectKind - ckRunningOrNew.

У WordDocument1 AutoConnect - ckAttachToInterface

Запускаю следующий код:

procedure TForm1.BitBtn2Click(Sender: TObject);
var n: OleVariant;
begin
WordApplication1.Documents.Add(EmptyParam,EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
WordApplication1.Selection.TypeText('Документ созданный в Word');

n:='new.doc';
WordDocument1.SaveAs(n);
WordDocument1.Close;
end;

Файл word формируется, открывается, НО ПОСЛЕ закрытия при повторном запуске этого кода выскакивает ошибка: RPC сервер не доступен...

Кто знает в чем проблема подскажите. Очень нужно...


СержК   (2007-04-24 09:03:00) [1]

После того как процедура отработала, процесс winword все еще запущен.

ВОТ ТАК.

После открытия\закрытия word процесс закрывается.

Вставил в конце своего кода WordApplication1.Quit.

После отработки процедуры процесс Word завершается.
При повторном запуске procedure TForm1.BitBtn2Click(Sender: TObject);
выскакивает ошибка: RPC сервер не доступен.

Как эту проблему победить???


Плохиш   (2007-04-23 17:52:00) [2]


> СержК   (23.04.07 15:54) [10]
> Не понял???  Каких еще параметров ему(методу) нужно???


   function Add(var Template: OleVariant; var NewTemplate: OleVariant;
                var DocumentType: OleVariant; var Visible: OleVariant): WordDocument; safecall;


> Но как только обращаюсь к вновь созданному файлу Word

Ни в [0], ни в [6] нет обращения к "вновь созданному файлу Word", т.о. делаем вывод, что у тебя ошибка в 17й строке и скучаем...


СержК   (2007-04-23 15:54:00) [3]

Не понял???  Каких еще параметров ему(методу) нужно???

Я приведенную выше процедуру запускаю хоть 100 раз подряд - все OK!
Но как только обращаюсь к вновь созданному файлу Word (копировать, открыть...) - все хана (больше процедура не запускается)


Плохиш   (2007-04-23 15:12:00) [4]


> В чем же проблема???

Понятия не имею, мо у меня, после копировании твоего кода, метод Add потребовал ещё два параметра.


СержК   (2007-04-23 14:22:00) [5]

У меня тоже Word2000. В чем же проблема???


Плохиш   (2007-04-23 14:19:00) [6]

Для Word2000 работает...


СержК   (2007-04-23 14:17:00) [7]

Я так и делаю:

procedure TForm1.BitBtn2Click(Sender: TObject);
var n: OleVariant;
begin
WordApplication1.Connect;

WordApplication1.Documents.Add(EmptyParam,EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
WordApplication1.Selection.TypeText('Документ созданный в Word');

n:='C:\COM_Delphi\new.doc';
WordDocument1.SaveAs(n);
WordDocument1.Close;
end;

В итоге опять: RPC сервер не доступен...
???


Плохиш   (2007-04-23 14:10:00) [8]

После begin надо вставить строчку из [1]


СержК   (2007-04-23 14:08:00) [9]

Если не трудно покажи как...


Плохиш   (2007-04-23 14:04:00) [10]


> СержК   (23.04.07 14:02) [2]
> Пробовал еще раз: WordApplication1.Connect;
> Не помогло...

Неправильно пробовал.


СержК   (2007-04-23 14:02:00) [11]

Пробовал еще раз: WordApplication1.Connect;
Не помогло...

Да вот еще что: После формирования файла копирую его
(вновь созданный файл) в другое место (не открывая), и при
запуске procedure TForm1.BitBtn2Click(Sender: TObject);
опять выскакивает та же ошибка


Плохиш   (2007-04-23 13:48:00) [12]

WordApplication1.Connect;

Нужен. Раз ты подключение закрываешь.


Наверх

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