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

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

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:=...


Наверх

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