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

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

TWebBrowser [D7, XP]


arturich ©   (2006-12-10 14:39:00) 

Здравствуйте, просмотрел все св-ва данного компонента, но так и не смог найти простого поиска по открытому в нём документу (странице). Как реализовать? Заранее спасибо!


arturich   (2006-12-10 15:05:00) [1]

Cawa, сейчас попробую второй вариант, спасибо!


arturich   (2006-12-10 15:04:00) [2]

Cawa, да, так конечно можно, но мне требуется сделать "невизуальный" поиск, без диалогов. Программа быстро ищет заданный текст и если находит, то выполняет соот-вующие действия. Тут задумано так, чтобы пользователь вообще мог отсутствовать во время исполнения таких поисков :(


Cawa   (2006-12-10 14:59:00) [3]

Если нужен чисто текст из документа вытащить, то можно так:

uses mshtml, activex;

procedure GetHtmlCode(WebBrowser: TWebBrowser; FileName: string);
var
htmlDoc: IHtmlDocument2;
PersistFile: IPersistFile;
begin
htmlDoc := WebBrowser.document as IHtmlDocument2;
PersistFile := HTMLDoc as IPersistFile;
PersistFile.save(StringToOleStr(FileName), true);
end;


Cawa   (2006-12-10 14:54:00) [4]

2 xela - просто можно диалоговое окно поиска IE вызывать, приблизительно так:

const
 HTMLID_FIND       = 1;
 HTMLID_VIEWSOURCE = 2;
 HTMLID_OPTIONS    = 3;

...

procedure TForm1.FindIE;
const
 CGID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
var
 CmdTarget : IOleCommandTarget;
 vaIn, vaOut: OleVariant;
 PtrGUID: PGUID;
begin
 New(PtrGUID);
 PtrGUID^ := CGID_WebBrowser;
 if WebBrowser1.Document <> nil then
   try
     WebBrowser1.Document.QueryInterface(IOleCommandTarget, CmdTarget);
     if CmdTarget <> nil then
       try
         CmdTarget.Exec( PtrGUID, HTMLID_FIND, 0, vaIn, vaOut);
       finally
         CmdTarget._Release;
       end;
   except
     // nothing
   end;
 Dispose(PtrGUID);
end;


arturich   (2006-12-10 14:53:00) [5]

Да, по исходнику.. просто не могу понять где, с каким свойством это делается?


xela   (2006-12-10 14:47:00) [6]

Cawa, по исходнику сначала, а потом уж и hot keys можно назначать )


Cawa   (2006-12-10 14:46:00) [7]

А те как надо искать программно по исходному коду, или как в броузере по нажатию CTRL+F???


Наверх

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