![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi + MS Word [D7, WinXP]
Tigra © (2005-11-24 12:23:00)Есть шаблон в Word'e
В шаблоне есть текстовые поля.
Требуется в них забить данные.
Получается их выделить и заменить просто текстом
WordApplication1.ActiveDocument.Fields.Item(2).Select;
WordApplication1.Selection.TypeText('123');
Но хочется именно забить В НИХ значения.
Как?
umbra (2005-11-24 16:23:00) [1]попробуй - узнаешь
evvcom (2005-11-24 16:13:00) [2]
> А при закрытии преложения все отвалится?
Само не отвалится. Здесь 2 приложения и эти оле-переменные разделяются обоими приложениями, насколько я понимаю этот механизм. На низком уровне не разбирался, поэтому только догадываюсь и предполагаю, как это происходит. Потому прошу сильно не пинать, если немного не так.
Tigra (2005-11-24 15:21:00) [3]А при закрытии преложения все отвалится?
evvcom (2005-11-24 15:20:00) [4]
> Зачем? При закрытии программы этого автоматически не произайдет?
Тогда и WordApplication1.Disconnect и Quit нафига делать? Пока ВСЕоле-варианты, имеющие отношение к вызываемому оле-серверу, не освободишь, этот оле-сервер так и будет в памяти висеть.
umbra (2005-11-24 15:08:00) [5]2 Tigra (24.11.05 14:57) [8]
нет. Будет утечка памяти.
Tigra (2005-11-24 14:57:00) [6]Зачем? При закрытии программы этого автоматически не произайдет?
evvcom (2005-11-24 14:40:00) [7]все OleVariant-ы освободи.
Tigra (2005-11-24 14:23:00) [8]ок. спс
umbra (2005-11-24 14:10:00) [9]сделай
WordApplication1.Quitпредпоследней строчкой
Tigra (2005-11-24 13:16:00) [10]Еще с одной проблемой столкулся:
Word Закрыть не могу. Тоесть документов нету, а программу закрыть не знаю как.
вот код:
WordApplication1.Connect;
vr:='c:\obmen\spr.doc';
WordApplication1.Documents.Open(vr,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyPar am,EmptyParam,EmptyParam,EmptyParam);
WordApplication1.ActiveDocument.Fields.Item(2).Result.Text:='Типа тест';
WordApplication1.ActiveDocument.PrintOut(EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,Em ptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
WordApplication1.Documents.Close(EmptyParam,EmptyParam,EmptyParam);
WordApplication1.Disconnect;
по завершению имеем запущенный Word без открытых документов.
Tigra (2005-11-24 12:52:00) [11]попробывал. Получилось интересно, но не то, что нужно =)
umbra (2005-11-24 12:40:00) [12]а
Item(2).Code.Text := '123'не работает?
Tigra (2005-11-24 12:37:00) [13]Справился
WordApplication1.ActiveDocument.Fields.Item(2).Result.Text:=...