![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WebBrowser [D6, WinXP]
Di_wind © (2002-10-25 23:00:00)Столкнулся с следующей проблемой, нужно оценить по какому url из компонента WebBrowser идет юзер. Если окно открывается в компоненте, все очень просто обрабатываем метод BeforeNavigate и там параметр url. А вот если окно открывается в новом стандартном окне Explorera тогда проблема, есть обработчик
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
end;
Вот как мне из всего этого хозяйства линк узнать. Заранее благодарен за ответ.
kig (2002-10-29 22:51:00) [1]"Если там его нет" - IHTMLDocument2 конечно ))
kig (2002-10-29 22:11:00) [2]Посмотрите mshtml.pas
Если там его нет, а у Вас стоит IE >= версии 4.0, сделайте следующее (меню):
Import|Import Type Library ...
В диалоге найдите
Microsoft HTML Object Library
и импортируйте ее...
Потом пользуйте mshtml_tlb.pas
Di_wind (2002-10-29 20:13:00) [3]простите конечно, но такогоа модуля нигде нет, есть IHTMLForm и
IHTMLField не более...если не трудно скажите пожалуйста, какой конкретно.
int64 (2002-10-28 02:46:00) [4]Надо подключаь модуль. Секция uses.
А чтобы найти этот модуль (или pas-файл) надо включить фантазию.
Yr2 (2002-10-27 19:28:00) [5]To kigк сожалению, Delphi не знает, что такое за тип "IHTMLDocument2". Что делаем дальше? Нужно подключить какую-то библиотеку?
kig (2002-10-26 23:52:00) [6]var
ihd2: IHTMLDocument2;
...
ihd2 = pDisp as IHTMLDocument2;
или
ihd2 = IHTMLDocument2(pDisp);
Yr2 (2002-10-26 18:29:00) [7]To kig"У ppDisp можно запросить IHTMLDocument2"
а можно по-русски (то есть на паскале)?
как запросить? я не вижу способа.
kig (2002-10-26 16:38:00) [8]Fires when a new window is to be created.
Syntax
void NewWindow2( IDispatch** &ppDisp,
VARIANT_BOOL* &Cancel
);
Parameters
ppDisp
[in, out] Address of an interface pointer that, optionally, receives the IDispatch interface pointer of a new WebBrowser or InternetExplorer object.
Cancel
[in, out] VARIANT_BOOL value to determine whether the current navigation should be canceled.
VARIANT_TRUE
Cancel the navigation.
VARIANT_FALSE
Do not cancel the navigation.
У ppDisp можно запросить IHTMLDocument2
IHTMLDocument2::location Property
--------------------------------------------------------------------------------
Retrieves an interface pointer to a location object.
Syntax
HRESULT IHTMLDocument2::get_location(IHTMLLocation** p);
Parameters
p
Address of a pointer to an IHTMLLocation interface that receives the location object.
Return Value
Returns S_OK if successful, or an error value otherwise.
Remarks
The object contains information about the current location (full URL) of the document.
Далее
IHTMLLocation::href Property
--------------------------------------------------------------------------------
Sets or retrieves the entire URL as a string.
Syntax
HRESULT IHTMLLocation::get_href(BSTR* p);HRESULT IHTMLLocation::put_href(BSTR v);
Parameters
p
Pointer to a variable of type BSTR that receives a URL.
v
BSTR that specifies a URL.
Return Value
Returns S_OK if successful, or an error value otherwise.
Gayrus (2002-10-26 13:51:00) [9]Я, в своё время, тоже сталкивался с этой проблемой, никто не не знает или не говорит :(. Mогу только подсказать, что перед открытием нового окна(NewWindow2), всё равно посылается сообщение BeforeNavigate.
Di_wind (2002-10-26 10:00:00) [10]НЕужели никто не поможет ? :(