2012-11-12 67 views
0

幾周前,我遇到了一個似乎沒有合理解釋的問題。我正在使用AlphaControls和放置在窗體上的WebBrowser組件構建Delphi 2007的應用程序。 TWebBrowser從網絡獲取橫幅並將其顯示到UI中。不好的一面是,只要顯示橫幅窗體,我就會得到「無法獲得OLE控制窗口句柄」,而瀏覽器顯示在窗體的外部,在桌面的左上角。使用WebBrowser和Delphi 2007的OLE控件窗口句柄錯誤

我一直在試圖弄清楚什麼,但調試器並沒有提供有關正在發生的事情的太多信息(這就是我所得到的結果:第一次機會異常在$ 770C4B32。例外類EOleError帶有消息'Could not獲取OLE控件窗口句柄'.project project1.exe(3700))。有趣的是,新項目的Form1上的TWebBrowser工作沒有任何問題。

任何想法,將不勝感激。

回答

0

它是由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;