Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
1-74169
Chuha
2003-10-10 09:00
2003.10.23
ListBox


1-74147
satron
2003-10-10 14:38
2003.10.23
Как на форме сделать URL ?


4-74539
RadaR
2003-08-15 19:43
2003.10.23
SaveKey с правами не ALL_ACCESS


1-74137
Буланов Дмитрий
2003-10-11 04:15
2003.10.23
проблема


3-73990
BorH
2003-09-25 15:38
2003.10.23
Складская база данных InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский