|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
поиска в webbrowser с обновлением текста
Я думаю, что у меня тупой вопрос, но я этого сделать не могу...
Значит осуществляется поиск слов в webbrowser. Вводим одно слово, нашли его, выделили. Вводим другое слово его тоже нашли, выделили, и первое слово тоже так и остается выделенным, как сделать, чтобы текст в webbrowser перед каждым поиском обнавлялся procedure Tform1.SearchAndHighlight(aText: string); var tr: IHTMLTxtRange; begin if not WebBrowser1.Busy then begin tr := ((WebBrowser1.Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange; while tr.findText(aText, 1, 0) do begin tr.pasteHTML('<span style="color: red; font-weight: bolder;">' + tr.htmlText + '</span>'); tr.scrollIntoView(True); end; end; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin if searchedit1.Text<>'' then form1.SearchAndHighlight(searchedit1.Text); end; |
#2
|
||||
|
||||
Интересно, почему я знал, что ты задашь этот вопрос?
Перед первым поиском сохрани текст страницы (http://decoding.narod.ru/faq/compone...er001.html#008), а потом, перед следующим поиском, восстанови сохраненный ранее текст (http://decoding.narod.ru/faq/compone...er001.html#001). |
#3
|
|||
|
|||
какой ты догадливый
только, если честно я не совсем поняла как это сделать.... |
#4
|
||||
|
||||
Нужен пример?
|
#5
|
|||
|
|||
нужен буду очень благодарна
|
#6
|
||||
|
||||
ок, загляни сюда через часик…
|
#7
|
||||
|
||||
Итак, пока что ситуация не очень хорошая… Попробовал несколько вариантов, но ни один не подошел на 100%.
1. Сохранять текст перед первым поиском а потом восстанавливать его. В этом случае из TWebBrowser пропадает вся графика, анимация (flash) и т.д. Этот вариант не подходит. 2. Делать поиск "ранее найденного текста" и восстанавливать его первоначальное состояние. Все бы хорошо, но метод tr.findText не ищет тэги, так что найти конструкцию типа '<span style="color: red; font-weight: bolder;">SearchText</span>' невозможно. Этот вариант тоже не подходит. 3. Обновлять страницу перед повторным поиском. Работает как надо, но главный недостаток этого метода в том, что он по новой грузит страницу. Этот подход я привел в примере - вводишь текст в Edit и жмешь на Enter. 4. Воспользоваться стандартным диалогом поиска. Этот подход я тоже привел в примере - жми на кнопку "Поиск"; Browser.zip Последний раз редактировалось Decoding, 17.05.2007 в 14:38. |
Этот пользователь сказал Спасибо Decoding за это полезное сообщение: | ||
sleeps (28.03.2012)
|
#8
|
|||
|
|||
спасибо, очень помог
|