Проблемы общения с Word из Дельфы
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Дак вот к чему я шел та! Есть документ, не важно, договор или еще чего, в тексте этого документа надо вставить цифры которы человек считает вручную, да еще и по огромным формулам, потом начальство делает изменения в данных, и сиди пересчитывай это все снова. Офигенная ручная работа, да еще и нудная. Делаем прогу, которая будет расчитывать данные, после чего вставлять их в указанные Lablel'ами места, а у этого компонета можно в ворде выставлять свойства "в тексте","перед текстом", и т.д. Удобно, неправда ли? Да и еще у компонента есть свойство Autosize что еще больше облегчает вставку и выравнивание текста. Вот суть поей проги, это часть из дипломной работы ;-)
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
нет, не удобно. 
У меня немного по другому, и имхо, логичнее.
Пишем шаблон (dot) в него вставляем закладки через меню Вставка.
У нас правда чел писал надстройку над импортированным type library когда ещё не было стандартных компонентов... но я думаю адаптировать труда не составит

У меня немного по другому, и имхо, логичнее.
Пишем шаблон (dot) в него вставляем закладки через меню Вставка.
Код: Выделить всё
var
DocIntf: IWordDocument;
...
DocIntf := g_WordAppIntf.CreateDocument("шаблон.dot");
DocIntf.Bookmarks['bmSuperLabel'].Value := 'bla-bla'
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
"- Так что ж вы дяденька животинку ту тираните?!Дак вот к чему я шел та! Есть документ, не важно, договор или еще чего, в тексте этого документа надо вставить цифры которы человек считает вручную, да еще и по огромным формулам, потом начальство делает изменения в данных, и сиди пересчитывай это все снова.
- Не видишь? Змея запускаю!" (с) известный мультфильм.
Во-первых, Word и сам умеет считать почти как Excel. Пойдем в соседний формум - расскажу.
Во-вторых, на случай нехватки стандартных фишек в самом Worde есть супер мощный инструмент VBA. (Тоже не здесь обсуждаемо)
Категорически считаю, что применять что-то кроме самого MS Office (например, Delphi) для таких задач неэффективно и расточительно, так как в самом MSOffice есть для этого сразу несколько технологий на выбор!. Другое дело, когда Delphi-приложению требуется вывесли данные в виде документа Word (в качестве отчета, например) или наоборот, извлечь данные из документов для дальнейшего использования...
Итак, давайте подведем итоги темы:
1) То что Автор вопроса хотел сделать можно получить используя только стандартные средства MSOffice ВООБЩЕ не прибегая к программированию (обсуждение можно продолжить в установленном месте).
2) Между тем мы (и я в том числе отчасти) научились работать с некоторыми интерфейсами, обеспечивающими доступ к объектам MSWord (включая закладки).
3) Интересно, что если в документе присутствуют объекты (элементы управления Label, EditBox, и прочие OLE-объекты) нам достаточно знать их имена, чтобы обращаться к ним и использовать их методы и свойства. Для этого нам нужен только интерфейс к объекту Word.Document имя объекта.
//впечатать текст в закладку:
Doc.Bookmarks['bmSuperLabel'].Value := 'bla-bla' ;
//впечатать текст в элемент управления:
Doc.Label1.Caption := 'qwe';
4) Все остальное, что можно написать после "Doc." можно найти в справке по VBA.
На этом тему рекомендую закрыть.
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Так точно Naeel Maqsudov, все что мне нужно было, мне уже растолковали парни, за что им огромное санькью! Прога уже работает, так что тему можно закрыть 
