Форум: "Corba";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
ВнизWord : Поиск и замена Найти похожие ветки
← →
Yurij-7 (2005-07-05 18:56) [0]Вечер добрый
Уважаемые мастера, прошу помочь в следуюей ситуации :
есть докумет ворды, в нем есть надписи (рамочки) я туда пишу слово (#FIO#), которое пытаюсь найти и заменить на значение например из EDIT1.TEXT, но вот проблема если #FIO# в теле документа то его находит и меняет, а вот если в надписи то ничего неполучаеться, вот пример кода:
word.activedocument.range.find.execute (FindText := "#FIO#", replacewith := edit1.Text, replace := wdReplaceAll);
Заранее благодарен.
← →
Yurij-7 (2005-07-06 10:52) [1]ну неужели никто незнает, или может я неправильно задал вопрос?
← →
Yurij-7 (2005-07-06 11:35) [2]или всетаки лучше использовать закладки?
← →
Virgo_Style © (2005-07-06 11:42) [3]Мне это решение не нравится, скорее всего есть более красивое, но.. работает же %-)
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:52) [4]а что можете посоветовать? я просто только учусь, и может изначально выбираю ложный путь?
я так понимаю что если мне надо изменить что то в надписи то ее надо выделить??
спасибо.
← →
Yurij-7 (2005-07-06 13:15) [5]Virgo_Style © (06.07.05 11:42) [3] - нехочет работать :((
← →
Virgo_Style © (2005-07-06 13:32) [6]Yurij-7 (06.07.05 13:15) [5]
нехочет работать
C часу до двух - перерыв на обед 8-)
Что говорит-то?
← →
Yurij-7 (2005-07-06 13:41) [7]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:52) [8]На какой строке пишет? И для какой версии TWordApplication? У меня для 2000.
"Поиск по надписям" я делал так:
Result:=WApp.Selection.Find.Execute(.....), Word.ActiveDocument.Shapes у меня не имеет ни метода, ни свойства Find.
← →
Yurij-7 (2005-07-06 15:57) [9]я Ворд запускаю через CreateOleObject
именно то что вы подсказали и работает, жаль что долговато ,просто я еще добавлял activedocument и через то отказывалось работать.
Virgo_Style © (06.07.05 13:52) [8] Огромное спасибо !!!
← →
Yurij-7 (2005-07-07 16:33) [10]еще возник вопросик, всего порядка 60 надписей, и сам документ формируеться очень долго, может надо обращаться до конкретного итема (точнее надписи)?
спасибо.
← →
Yurij-7 (2005-07-08 17:15) [11]нашел выход. может кому интересно будет, всего то надо было надпись отправить на задный план, и уже получаеться что владельцем идентификатора являеться не надпись а сам документ
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c