Delphi Tokyo 版本 TWebBrowser 的一个问题(Bug?)


本文整理自网络,侵删。

 
FireMonkey  底下,Android APP:
在一个 Form 上放页标签,在其中一个页里放一个 TWebBrowser ,其它页放其它界面控件。加个按钮,让 WebBrowser1 去打开一个 URL,显示一个网页。
APP 编译为 Windows 版本,运行,没有任何问题。
编译为 Android 运行在手机上,当 WebBrowser 打开网页后,切换到其它页标签后(WebBrowser1 没在屏幕上显示了),整个界面失去对触摸到响应。用 Debug 方式来运行看,IDE 里面没有任何错误提示出来。
换种方式,将 WebBrowser 放到一个 Layout 上,同时在这个 Layout 上放一个 ListView。加个按钮,隐藏 WebBrowser 以显示 ListView。
同样,当 WebBrowser 打开网页后,如果点按钮隐藏掉它,ListView 倒是显示出来了,然后整个界面就失去对触摸到响应,好像死机了。
再换种方式,增加一个 Form,把 WebBrowser1 放到这个 Form 上面。Form 上放一个按钮,事件代码是关闭这个 Form。命名这个 Form 为 FmWebBrowser.
主界面里面,点按钮,显示有 WebBrowser1 的 Form,打开一个网页。然后点这个 Form 上的关闭按钮,回到主界面,然后主界面失去对触摸的响应。
------------------------------------------------------
总结:不管什么方式,只要显示了网页,然后将当前屏幕的 WebBrowser 切换为显示其它界面元素,整个程序失去响应。这个问题在 Berlin 版本是没有的。
-------------------------------------------------------
上网搜了一下,没搜到相应的问题报告,也没搜到解决办法。
自己试了试,将工程文件里面创建这个 FmWebBrowser 的代码注释掉。在主 Form 里面,需要显示 WebBrowser 的地方,增加一行代码:

if not Assigned(FmWebBrowser) then FmWebBrowser := TFmWebBrowser.Create(Application);   
也就是运行期动态创建它。
然后,这个问题就消失了。
看起来,在 FireMonkey Mobile 的程序里面,不能在程序启动的时候就创建 WebBrowser 实例。

http://blog.csdn.net/pcplayer/article/details/78149391

相关阅读 >>

Delphi idhttp访问百度

Delphi 获取分解时间日期的年月日

Delphi获取程序所在目录

Delphi 对zlib单元进行再封装

Delphi 修改内存

如何减小Delphi应用程序(exe)的大小

Delphi利用系统环境变量获取常用系统目录

Delphi xe5实现通过tmemorystream将一个unicodestring写入到一个unicode文本文件

Delphi通过wmi获取系统信息

Delphi 通过控件句柄获取控件实例

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...