![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не получается сформировать документ 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;
Нужен. Раз ты подключение закрываешь.