Форум: "Основная";
Текущий архив: 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