2016-08-12 4 views
-1

Я уже провел исследование Google по этому вопросу, как здесь stackoverflow, но не нашел правильного ответа на мою проблему. Мое приложение отлично работает на некоторых клиентских компьютерах, но не на всех системах, которые мы хотели бы использовать в нашем инструменте.TWebbroser замораживает приложение UI - загружает HTML-файл с диска

Я предполагаю, что мой код для загрузки HTML-файла в веб-браузер также отлично подходит для большинства условий:

MyWebBrowser.Navigate('about:blank'); 
MyWebBrowser.Navigate('file://' + Filename); 
while MyWebBrowser.ReadyState <> READYSTATE_COMPLETE do 
    application.ProcessMessages; 

но должно быть какое-то условие на эти проблемы ПК, где это приводит к замораживанию моего приложения пытаясь перейти к моему файлу HTML.

Я предполагаю, что решение, решающее мою проблему, проверит что-то в моих настройках IE и настроит эти параметры перед загрузкой файла, но здесь я #m исчерпал знания.

ответ

4

При навигации по управлению браузером никогда не предполагается, что вызов завершается синхронно. Всегда используйте событие OnNavigateComplete2, даже если вы переходите к 'about: blank', который должен быть относительно быстрым.

Используя это событие, вы также можете избежать уродливого цикла занятости с Application.ProcessMessages (и избавитесь от лишних проблем из-за требования повторного входа, которое оно накладывает на ваши методы).

+0

Я использую Win 7 x 64; внутри DELPHi IDE происходит сбой приложения; запустив * .exe напрямую, мой HTML отображается в TWebbrowser – user1769184