Използване на компонента TWebBrowser, Интернет и мрежи, статии, програмиране - програмиране
Основни операции
За да използвате TWebBrowser във вашата програма, поставете във формуляра съответния компонент, наличен в раздела Интернет. След това, за да покажете HTML страницата в нея, трябва да извикате нейния метод за навигация:
Нека разгледаме по-отблизо параметрите, предадени на метода Navigate.
Останалите параметри са по избор и се използват за прехвърляне на допълнителна информация (Таблица 1).
Най-интересният е параметърът PostData, който ви позволява да изпращате данните, получени в резултат на попълването на формуляра, на уеб сървъра, ако този сървър изисква HTTP POST транзакция. И така, следният кодов фрагмент изпраща потребителското име и паролата до сървъра, попълнени във формата Delphi:
Например на уеб сървър тази заявка може да бъде обработена от следния ASP скрипт:
След получаване на данните е необходимо да се предостави възможност на потребителя да работи с тях. Много функции на TWebBrowser са достъпни чрез метода ExecWB, който осигурява лесен начин за достъп до интерфейса IOleCommandTarget. Този метод изглежда така:
CmdID може да бъде една от константите на OLECMDID, дефинирани във файла ShDocVw.pas.
Параметърът cmdexecopt може да приеме една от четирите стойности, показани в таблицата. 2.
Параметрите pvaIn и pvaOut не са задължителни и зависят от конкретната команда.
Възможно е да поискате наличието на определена команда от TWebBrowser, като използвате функцията:
Функцията връща битова маска от стойностите, показани в таблицата. 3.
Следователно можете да персонализирате интерфейса в зависимост от възможностите, поддържани от текущата версия на TWebBrowser:
Командата OLECMDID_PRINT се използва за отпечатване на съдържание на TWebBrowser. Методът на печат може да изглежда по-специално както следва:
Блокът try ... освен ... end е необходим, защото TWebBrowser, когато изпълнява всяка команда с помощта на ExecWB, изхвърля EOleException със следния код:
Започвайки с Internet Explorer 5, допълнителни команди се документират чрез интерфейса IOleCommandTarget. Те значително разширяват възможностите за управление на компонента, но не са налични или не са документирани във версия 4. Това създава определени трудности при програмирането. Така че, за да организирате търсенето в заредената страница, е необходим следният код:
Използването на недокументирано повикване в този случай е оправдано, тъй като във версия 4 това повикване вече няма да се променя, а във версия 5 ние намираме и използваме документирания метод. В същото време IE4 все още е доста широко разпространен, така че би било неподходящо напълно да се лиши програмата от възможността за търсене на такива компютри.
Фина настройка
Ако се нуждаете от по-фина настройка на компонента, тогава трябва да внедрите интерфейса IDocHostUIHandler, който позволява на програмиста да поеме контрола върху поведението на TWebBrowser.
Интерфейсът е деклариран като:
Наследник на TWebBrowser, който реализира този интерфейс, трябва да бъде деклариран по следния начин:
Тук можете да изтеглите кода за такъв компонент, който реализира минималната функционалност. Можете да го използвате като основа за създаване на вашите разширени наследници TWebBrowser.
Сега нека разгледаме най-интересните, от гледна точка на програмиста, методи на интерфейса IDocHostUIHandler.
Нека започнем с метода ShowContextMenu:
Тази функция се извиква, когато TWebBrowser трябва да покаже контекстното меню. Ако показвате вашето собствено меню или искате да потиснете менюто, тогава функцията трябва да върне S_OK, а ако менюто трябва да показва TWebBrowser, тогава S_FALSE.