2013-04-08 5 views
-1

Компонент TWebBrowser в Delphi XE2 кажется серьезным ошибкой. Есть ли какой-то код, который мне нужно запустить, чтобы создать его каким-то особым образом?Как я могу запустить TWebBrowser в Delphi XE2?

  1. Создать новый проект Delphi
  2. Бросьте компонент TWebBrowser на форму.
  3. В Form1.FormCreate() вызов WebBrowser1.GoHome (для google).

Если я скомпилирую этот 32-разрядный файл и перейду на некоторые веб-страницы, то получаю сообщения об ошибках. google (ncbi нуклеотидный взрыв) и нажмите на первую ссылку.

В дополнение к этим ошибкам javascript, если я нажму ссылку, которая обычно открывается в новом окне, она открывается в IE (отдельное приложение).

64-разрядная версия кажется еще более неисправной. Перейдя на тот же сайт (ncbi nucleotide blast), я получаю всю ошибку программы из-за ошибки divide_by_zero.

+1

TWebBrowser - это просто обертка, и эти ошибки не возникают в Delphi. Чтобы избежать этого всплывающего окна, установите TWebBrowser.Silent: = True –

+2

Если бы у меня была копейка за каждый раз, когда я видел, что кто-то спросил об этом ... У меня было бы много гроши. –

+0

@Sir Rufo Добавление .silent избавилось от ошибок JS. – Daisetsu

ответ

1

Что касается исключений с плавающей запятой, TWebBrowser рассчитывает работать с исключениями с плавающей запятой в масках. Похоже, вы используете настройки Delphi по умолчанию с плавающей запятой и исключения отключены. Я подозреваю, что если вы маскируете исключения, ваши проблемы исчезнут.

ли, что вот так:

SetExceptionMask(exAllArithmeticExceptions); 

И как уже говорили другие, вы молчание всплывающих окон Javascript, установив Silent в True.

+0

Привет, Дэвид, я видел это. http://stackoverflow.com/questions/9359223/delphi-xe2-twebbrowser-float-divide-by-zero, но на самом деле не понимал этого. – Daisetsu

+1

Что вы не понимаете? –

+0

Я попробовал System.Set8087CW ($ 133f); и $ 1F80 // Отключить все исключения fpu. Но я все равно получаю ту же ошибку. Как SetSSEExceptionMask (exAllArithmeticExceptions), так и SetFPUExceptionMask (exAllArithmeticExceptions) не компилируются даже после импорта System.math. – Daisetsu

Смежные вопросы