与web浏览器和德尔福2007年OLE控件的窗口句柄错误(OLE Control window ha

2019-08-02 16:20发布

我遇到了一个问题,一对夫妇似乎没有合乎逻辑的解释星期前。 我使用AlphaControls并放置在窗体上的web浏览器组件构建应用程序与德尔福2007年。 该TWebBrowser从网上获取的一面旗帜,并将其显示到用户界面。 不好的是,一旦显示了这样的横幅的形式,我得到“ 无法获得OLE控件窗口句柄 ”,在显示的形式之外的浏览器,在桌面的左上角。

我一直在试图基本上什么弄明白,但调试器不提供关于正在发生的事情太多信息(这是我得到的:第一次机会异常在$ 770C4B32 Exception类EOleError与消息“无法获取OLE控件窗口处理”。处理PROJECT1.EXE(3700))。 有趣的是,相同的TWebBrowser上一个新项目的Form1的工作没有任何问题。

对任何想法,将不胜感激。

Answer 1:

它是由HTML表单被关闭造成的。 供应商的论坛上表现出一定的代码,将解决这个问题。 http://www.bsalsa.com/forum/showthread.php?t=255

设置取消为True OnWindowClosing事件并导航到一个空白页,如果它是主要的网页浏览器。 如果你的网页浏览器是一个弹出窗口,可能要关闭的形式EWB上。

procedure TForm2.EmbeddedWB1WindowClosing(ASender: TObject; IsChildWindow: WordBool; var Cancel: WordBool);
begin
  Cancel := True;
  (ASender as TEmbeddedWB).GoAboutBlank;
end;


文章来源: OLE Control window handle error with WebBrowser and Delphi 2007