Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2012, 22:07   #1
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию TwebBrowser - поиск и подсветка текста

Пытаюсь реализовать поиск текста с подсветкой, загружая в TwebBrowser html документ следующим образом
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    procedure SearchAndHighlightText(aText: string);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 SearchAndHighlightText(Edit1.Text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 if OpenDialog1.Execute then WebBrowser1.Navigate(OpenDialog1.FileName);
end;

procedure TForm1.SearchAndHighlightText(aText: string);
var
  i: Integer;
begin
  for i := 0 to WebBrowser1.OleObject.Document.All.Length - 1 do
  begin
    if Pos(aText, WebBrowser1.OleObject.Document.All.Item(i).InnerText) <> 0 then
    begin
      WebBrowser1.OleObject.Document.All.Item(i).Style.Color := '#FFFF00';
      WebBrowser1.OleObject.Document.All.Item(i).ScrollIntoView(True);
    end;
  end;
end;
end.
Однако происходит подсветка не найденного текста, а всего документа! Подскажите что подправить в этой связи? (Delphi XE2)
kta87 вне форума Ответить с цитированием
Старый 27.03.2012, 23:01   #2
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

посмотрите что находится в InnerText.
и где конкретно вам надо искать, например надпись на кнопке содержит искомое, выделять надо? и т.д.
=master= вне форума Ответить с цитированием
Старый 27.03.2012, 23:16   #3
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

=master=, выделять нужно везде, где есть совпадения... Можно по подробнее.. я сегодня 1 раз работаю с компонентом TwebBrowser
kta87 вне форума Ответить с цитированием
Старый 29.03.2012, 07:46   #4
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

Ну собственно up! Не могу разобраться с поиском по тексту... приведите пример если не трудно..! или помогите подправить мне код, что я написал в 1 посте!
kta87 вне форума Ответить с цитированием
Старый 14.01.2014, 15:06   #5
daaa
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от kta87 Посмотреть сообщение
Ну собственно up! Не могу разобраться с поиском по тексту... приведите пример если не трудно..! или помогите подправить мне код, что я написал в 1 посте!
kta87 ,разобрался с поиском? та же проблема,нужен поиск по Webbrowser, нашел несколько вариантов том числе и этот но так нормально и не работает...
daaa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсветка текста [RR]Reaction Общие вопросы Delphi 9 15.07.2012 00:58
Как сделать, чтобы при переходе по ссылке включалась подсветка текста? Benderbej JavaScript, Ajax 2 03.09.2010 11:09
Подсветка текста alexprey Общие вопросы Delphi 8 07.08.2010 10:55
Отправка текста в поле TWebBrowser Alex Cones Общие вопросы Delphi 8 29.05.2010 14:09
Выделение текста в TWebBrowser IgorKr Общие вопросы C/C++ 0 27.01.2009 21:22