Navigate2
- асинхронная операция. Следуя за ним с Refresh
, вы не даете навигации возможность начать и запустить BeforeNavigate2
событие. Возможно, вам стоит подождать NavigateComplete2
, чтобы его уволили, прежде чем позвонить Refresh
. Что именно вы пытаетесь достичь? Ошибка, о которой вы говорите, не связана с вашим кодом Delphi, она была специфичной для .NET и была исправлена давно.
[EDITED]. То, что я сказал выше, неверно. Это могло быть правдой для IE7, но для IE10 оба значения BeforeNavigate2
и NavigateComplete2
действительно срабатывают (один раз), даже если сразу Navigate
вызывает Refresh
. Однако это не вызывает команды OLECMDID_PREREFRESH
или OLECMDID_REFRESH
, которые будут отправляться с помощью элемента управления WebBrowser на его COM-объект. Я видел только OLECMDID_PREREFRESH
, когда я вручную вызвал обновление через меню правой кнопки мыши (но все же noOLECMDID_REFRESH
). Это было проверено с помощью C++/ATL/VS2012. К сожалению, это не помогает ответить, почему поведение отличается от Delphi.
Следует упомянуть, что 'Webbrowser1' объявлен как' TEmbeddedWB'. Измените свой вопрос и включите эту информацию. – TLama
@TLama А я забыл :) –