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

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

Работать с Word, не через буфер обмена [D7, XP]


SQLEXPRESS ©   (2011-07-27 12:59:00) 

пишу
   WA := CreateOleObject('Word.Application');
   DA := WA.Documents.Open(PatternA);
   DA.Range.Select;
   WA.Selection.Copy; // из документа скопировали в буфер
   DA.Close(NoSaveChanges);
   DA := Unassigned;
// из документа скопировали в буфер, документ закрыли

далее где-то, в цикле
   WA.Selection.paste; // из буфера вставили в другой документ

если во время работы цикла пользователь что-то скопирует в буфер обмена, то следующие документы будут дополнены этим, а не тем, что по задумке должно быть.

Подскажите, как можно скопировать все из документа и где-то хранить, что-бы потом вставлять так же в цикле и пользователь не мог повредить вставляемое (неумышленно).

(вариант перед вставкой еще раз скопировать - не очень..)


Dennis I. Komarov   (2011-07-27 16:47:00) [1]

или так:
WA1.Selection:=WA2.Selection
или может
WA.Documents(0).Selection:=WA.Documents(2).Selection;

ну танцы... :)


Dennis I. Komarov   (2011-07-27 16:20:00) [2]

Я и говорю "Что-нить вроде"...
Например, пусть с будет ссылка на отдельный WA.Documents, в котором будет только то, что надо вставить. В общем, бубен и пляски...

З.Ы. Не лублу привязываться к ворду...


SQLEXPRESS   (2011-07-27 15:37:00) [3]


> C:=WA.Selection;

не работает

да и не должно, С - ссылка.
Вот если бы как-нибудь С := CreateNewOleObject(WA.Selection)


Dennis I. Komarov   (2011-07-27 15:23:00) [4]

Может вставлять не из буфера?

Что-нить вроде:

C: OleVariant;
...
C:=WA.Selection;

потом

WA.Selection:=C;


SQLEXPRESS   (2011-07-27 13:46:00) [5]

может можно именно WORDу сказать, что сейчас вот можно копировать.
А сейчас нельзя. Цикл прогнали. Сейчас можно.
Только мне кажется, у него не свой буфер..

пока ждал коллеге анекдот из браузера в аську кинул - полторы тысячи копий анекдота мне сформировалось :)


SQLEXPRESS   (2011-07-27 13:03:00) [6]

как сам думаю - может можно как-то буфер сделать локальным для процесса?
(неизменяемым)
или как еще можно?


Наверх

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