【问题标题】:How do I get TWebBrowser in Delphi XE2 to run?如何让 Delphi XE2 中的 TWebBrowser 运行?
【发布时间】:2013-04-08 22:16:22
【问题描述】:

Delphi XE2 中的 TWebBrowser 组件似乎有严重的错误。我必须运行某种代码才能以某种特殊方式对其进行实例化吗?

  1. 创建新的 Delphi 项目
  2. 将 TWebBrowser 组件拖放到表单上。
  3. 在 Form1.FormCreate() 中调用 WebBrowser1.GoHome(到 google)。

如果我编译这个 32 位并转到某些特定网页,我会收到错误消息。 google (ncbi 核苷酸blast) 并点击第一个链接。

如果我单击通常在新窗口中打开的链接,除了这些 javascript 错误之外,它还会在 IE(单独的应用程序)中打开。

64 位版本似乎更糟糕。通过访问同一个站点(ncbi 核苷酸爆炸),由于“divide_by_zero”错误,我让整个程序崩溃。

【问题讨论】:

  • TWebBrowser 只是一个包装器,Delphi 不会引发这些错误。为避免此弹出窗口设置 TWebBrowser.Silent := True
  • 如果我每次看到有人问这个问题时都能得到一分钱......我会有很多便士。
  • @Sir Rufo 添加 .silent 消除了 JS 错误。

标签: delphi crash delphi-xe2 twebbrowser


【解决方案1】:

关于浮点异常,TWebBrowser 期望在屏蔽浮点异常的情况下进行操作。看起来您正在使用 Delphi 默认浮点设置并且未屏蔽异常。我怀疑如果你屏蔽异常,那么你的问题就会消失。

这样做:

SetExceptionMask(exAllArithmeticExceptions);

正如其他人所说,您可以通过将 Silent 设置为 True 来使 Javascript 弹出窗口静音。

【讨论】:

  • 嗨,大卫,我见过这个。 stackoverflow.com/questions/9359223/… 但不是很懂。
  • 你不明白什么?
  • 你正在为 64 位编译?
  • 那么设置8087CW不好,因为没有使用。您需要控制 SSE 单元。 SetMXCSR($1F80)
  • FWIW,SetExceptionMask(exAllArithmeticExceptions) 在这里工作得很好
猜你喜欢
  • 2012-03-10
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多