2016-08-12 52 views
-1

我已经在这方面做了一些谷歌研究stackoverflow这个问题,但没有找到我的问题的正确答案。 我的应用程序在一些客户端PC上运行良好,但不是在我们想要使用我们的工具的所有系统上运行。TWebbroser冻结应用程序UI - 从磁盘加载HTML文件

我想我的加载HTML文件到Web浏览器的代码也适用于大多数情况:

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

但必须有这些问题的PC上的一些条件,其中它会导致我的应用程序冻结同时试图导航到我的HTML文件。

我想解决我的问题的答案将检查我的IE设置的东西,并调整这些PARAMS之前加载文件,但在这里我#m用尽知识。

回答

4

导航浏览器控件时,不会假定呼叫同步完成。即使您正在导航到“about:blank”,也应该使用OnNavigateComplete2事件,这应该相对较快。

使用该事件,您还可以避免与Application.ProcessMessages(由于其重置要求放置在您的方法中而让自己更麻烦)的丑陋繁忙循环。

+0

我使用Win 7 x 64;在DELPHi IDE中,我的应用程序崩溃;直接运行* .exe我的HTML显示在TWebbrowser中 – user1769184