TWebBrowser
загружает материал в отдельной теме. Ваша программа должна оставаться отзывчивой во время ее загрузки. Вы можете увидеть это, потому что часто картина установить URL, а затем ждать завершения загрузки:
WebBrowser1.Navigate(...);
while WebBrowser1.Busy do
Application.ProcessMessages;
Это использует ProcessMessages
, поэтому я не могу добросовестно рекомендовать его. Чтобы получить уведомление о завершении загрузки, вместо опроса, подобного этому коду, обработайте событие управления OnNavigateComplete2
. Помните, что событие может быть запущено как для фреймов, так и для главной страницы.
Если вы хотите дисплей страницы, а затем ваш TWebBrowser
контроль не должен быть в отдельном потоке в любом случае, потому что она подпадает под те же правила, как и любой другой элемент управления, используемого с VCL. Если вы просто используете элемент управления до , загрузите a, тогда TWebBrowser
может быть излишним. Вы можете использовать Indy или встроенные функции загрузки файлов операционной системы. Они могут использоваться в отдельных потоках легко.
Это имеет смысл. Мое приложение останавливается на несколько секунд, но, я думаю, я должен найти для этого еще одну причину. – Vegar
Общая идея хорошая. Вам просто нужно использовать ReadyState вместо Busy. См. Мой комментарий для получения дополнительной информации .. –