Текущий архив: 2007.05.13;
Скачать: CL | DM;
Вниз
Не получается сформировать документ Word Найти похожие ветки
← →
СержК (2007-04-23 13:04) [0]Мастера подскажите.
Пытаюсь сформировать документ 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-23 13:48) [1]WordApplication1.Connect;
Нужен. Раз ты подключение закрываешь.
← →
СержК (2007-04-23 14:02) [2]Пробовал еще раз: WordApplication1.Connect;
Не помогло...
Да вот еще что: После формирования файла копирую его
(вновь созданный файл) в другое место (не открывая), и при
запуске procedure TForm1.BitBtn2Click(Sender: TObject);
опять выскакивает та же ошибка
← →
Плохиш © (2007-04-23 14:04) [3]
> СержК (23.04.07 14:02) [2]
> Пробовал еще раз: WordApplication1.Connect;
> Не помогло...
Неправильно пробовал.
← →
СержК (2007-04-23 14:08) [4]Если не трудно покажи как...
← →
Плохиш © (2007-04-23 14:10) [5]После begin надо вставить строчку из [1]
← →
СержК (2007-04-23 14:17) [6]Я так и делаю:
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:19) [7]Для Word2000 работает...
← →
СержК (2007-04-23 14:22) [8]У меня тоже Word2000. В чем же проблема???
← →
Плохиш © (2007-04-23 15:12) [9]
> В чем же проблема???
Понятия не имею, мо у меня, после копировании твоего кода, метод Add потребовал ещё два параметра.
← →
СержК (2007-04-23 15:54) [10]Не понял??? Каких еще параметров ему(методу) нужно???
Я приведенную выше процедуру запускаю хоть 100 раз подряд - все OK!
Но как только обращаюсь к вновь созданному файлу Word (копировать, открыть...) - все хана (больше процедура не запускается)
← →
Плохиш © (2007-04-23 17:52) [11]
> СержК (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-24 09:03) [12]После того как процедура отработала, процесс winword все еще запущен.
ВОТ ТАК.
После открытия\закрытия word процесс закрывается.
Вставил в конце своего кода WordApplication1.Quit.
После отработки процедуры процесс Word завершается.
При повторном запуске procedure TForm1.BitBtn2Click(Sender: TObject);
выскакивает ошибка: RPC сервер не доступен.
Как эту проблему победить???
Страницы: 1 вся ветка
Текущий архив: 2007.05.13;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.092 c