![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Word : Поиск и замена [D6, Win95/98, WinXP]
Yurij-7 © (2005-07-05 18:56:00)Вечер добрый
Уважаемые мастера, прошу помочь в следуюей ситуации :
есть докумет ворды, в нем есть надписи (рамочки) я туда пишу слово (#FIO#), которое пытаюсь найти и заменить на значение например из EDIT1.TEXT, но вот проблема если #FIO# в теле документа то его находит и меняет, а вот если в надписи то ничего неполучаеться, вот пример кода:
word.activedocument.range.find.execute (FindText := '#FIO#', replacewith := edit1.Text, replace := wdReplaceAll);
Заранее благодарен.
Yurij-7 (2005-07-08 17:15:00) [1]нашел выход. может кому интересно будет, всего то надо было надпись отправить на задный план, и уже получаеться что владельцем идентификатора являеться не надпись а сам документ
Yurij-7 (2005-07-07 16:33:00) [2]еще возник вопросик, всего порядка 60 надписей, и сам документ формируеться очень долго, может надо обращаться до конкретного итема (точнее надписи)?
спасибо.
Yurij-7 (2005-07-06 15:57:00) [3]я Ворд запускаю через CreateOleObject
именно то что вы подсказали и работает, жаль что долговато ,просто я еще добавлял activedocument и через то отказывалось работать.
Virgo_Style © (06.07.05 13:52) [8] Огромное спасибо !!!
Virgo_Style (2005-07-06 13:52:00) [4]На какой строке пишет? И для какой версии TWordApplication? У меня для 2000.
"Поиск по надписям" я делал так:
Result:=WApp.Selection.Find.Execute(.....), Word.ActiveDocument.Shapes у меня не имеет ни метода, ни свойства Find.
Yurij-7 (2005-07-06 13:41:00) [5]Virgo_Style © (06.07.05 13:32) [6] так вроде 12:30 :)))
делаю примерно так:
word.documents.open (pat);
for I:=1 to word.ActiveDocument.Shapes.Count do
begin
oleI:=I;
word.ActiveDocument.Shapes.Item(oleI).Select(EmptyParam);
//Здесь твой поиск по надписям
word.activedocument.Shapes.find.execute (FindText := '#pbcard#', replacewith := edit1.Text, replace := wdReplaceAll);
end;
а оно пишет типа неподдерживаеться автоматизацией :((
пдскажите пжл что делать.
спасибо
Virgo_Style (2005-07-06 13:32:00) [6]Yurij-7 (06.07.05 13:15) [5]
нехочет работать
C часу до двух - перерыв на обед 8-)
Что говорит-то?
Yurij-7 (2005-07-06 13:15:00) [7]Virgo_Style © (06.07.05 11:42) [3] - нехочет работать :((
Yurij-7 (2005-07-06 11:52:00) [8]а что можете посоветовать? я просто только учусь, и может изначально выбираю ложный путь?
я так понимаю что если мне надо изменить что то в надписи то ее надо выделить??
спасибо.
Virgo_Style (2005-07-06 11:42:00) [9]Мне это решение не нравится, скорее всего есть более красивое, но.. работает же %-)
var oleI: OleVariant; I: integer;
...
//Здесь твой поиск (по документу)
//А здесь - по надписям
for I:=1 to WApp.ActiveDocument.Shapes.Count do
begin
oleI:=I;
WApp.ActiveDocument.Shapes.Item(oleI).Select(EmptyParam);
//Здесь твой поиск по надписям
end;
Yurij-7 (2005-07-06 11:35:00) [10]или всетаки лучше использовать закладки?
Yurij-7 (2005-07-06 10:52:00) [11]ну неужели никто незнает, или может я неправильно задал вопрос?