Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.23;
Скачать: CL | DM;

Вниз

Web Browser Navigate Method return when Document is Complete   Найти похожие ветки 

 
From_X   (2003-10-10 17:12) [0]

Короче, как сделать так чтобы метод
Navigate для TWebBrowser не возвращался до тех пор
пока не случится Document on Complete?


 
nikkie ©   (2003-10-10 18:01) [1]

поставить IE6


 
Ihor Osov'yak ©   (2003-10-10 19:55) [2]

2 [1] nikkie © (10.10.03 18:01)

???????????


 
nikkie ©   (2003-10-10 21:25) [3]

в чем вопрос, Игорь?

считай, что я понял тему не буквально... ;)


 
Ihor Osov'yak ©   (2003-10-11 11:30) [4]

Гм. Сабжевый вопрос действительно несколько сложноват для интерпретации.

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

Что нужно сделать для того, чтобы возврат из метода Navigate для TWebBrowser происходил после возникновения события OnDocumentComplete?


Для таком случае - ответ:

Для TWebBrowser этого не возможно сделать.

И попутно рекомендация: почитайте о событийно-ориентированном программировании..


 
nikkie ©   (2003-10-11 12:46) [5]

>Для TWebBrowser этого не возможно сделать.
ответ неверен. ;)

объясню ниже, а сначала - то, каким чудовищным образом преломился этот вопрос в моем сознании. :))

вопрос просто вызвал ассоциацию - для того, чтобы показать программно созданную страницу (не загруженную с какого-то URL) надо воспользоваться WB.DefaultInterface.Document - но изначально Document = nil. то есть надо сначала добиться, чтобы был загружен пустой документ с помощью WB.Navigate("about:blank"). но очень вероятно, что сразу после этого Document будет по прежнему nil, поскольку Navigate не гарантирует синхронности. поэтому обычно предлагают использовать код

WB.Navigate("about:blank");
while WB.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;


я сказал очень вероятно - на самом деле это зависит от версии IE. при установленном IE6 сразу после Navigate оказывается, что Document <> nil. видимо в нем изменили реализацию протокола about: - сделали ее синхронной.

вот собственно и все. получаем ответ: надо поставить IE6 и вызывать Navigate("about:..."). таким образом мы добъемся желаемого эффекта :))


 
Ihor Osov'yak ©   (2003-10-11 13:32) [6]

скажем так - за синхронность about: в IE6 не знал - информация интересная - нужно будет проверить..
Но есть все же подозрение, что и для about:
OnDocumentComplete будет возникать после выхода из навигейт - сейчас проверю..

Да, мое подозрение правильно.

eWB.Navigate("about:blank");

Сначала выход из метода, потом - обработчик.. При первом же запуске цыкла обработки сообщений - что вполне логично :-)

Зы - 6.0.2800.1106IC


 
nikkie ©   (2003-10-11 14:10) [7]

аналогично. что ответ неверен - забираю свои слова назад :)



Страницы: 1 вся ветка

Текущий архив: 2003.10.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
11-74107
mdw
2003-02-07 17:00
2003.10.23
Checked в BitBtn


1-74255
WolfGun
2003-10-13 12:34
2003.10.23
Массив полигонов...


14-74460
sashcan
2003-10-03 15:57
2003.10.23
оКНА


7-74484
Gepard
2003-08-08 11:56
2003.10.23
Serial port & nine-bit @NT


1-74256
Bonny
2003-10-11 23:10
2003.10.23
Bitmap Unit