2011-07-15 92 views
3

我已經創建了一個應用程序,其中包含一個twebBrowser。問題是當我點擊某個鏈接時,在gmail中,它會在我的默認瀏覽器(即IE)的新窗口中打開。我如何使它像Firefox或鉻等工作,打開他們的窗口中點擊鏈接。網址應該在TWebBrowser的窗口中打開。我必須在運行時爲它創建一個新的窗體與TWebBrowser它在運行時?代碼並不需要這樣,想法會做在TWebBrowser中打開新頁面

在此先感謝。

P.S.我的組織阻止Gmail,Facebook等,但通過我的TWebBrowser,我可以打開它們。我的質量保證人員可以在他們的日誌中看到嗎?我的猜測是否定的,從那時起他們會阻止它。什麼是這個

+1

關於你的「PS」:您的網站是最有可能受阻於網絡層,而不是在應用水平;如果您的默認IE瀏覽器無法訪問它們,您的'TWebBrowser'也將無法訪問它們。更何況'TWebBrowser'實際上是一個'IE'窗口,所以它真的*是*相同的瀏覽器。 –

+0

但我的IE瀏覽器無法訪問網站,我的TWebBrowser可以..這就是我說的。 – CyprUS

+0

是的,他們可以在日誌中看到它。但是,如果他們使用IE選項而不是網絡/路由器設置阻止網站(否則我不能解釋你的TWebBrowser可以訪問它們,因爲@Cosmin說這實際上是一個IE窗口),你可能會(!)擺脫它。然而,問自己爲什麼你的組織阻止這些網站(人們花費太多時間在他們身上?)以及試圖阻止這樣的公司政策是明智的。 –

回答

5

TWebBrowser您的評論有一個OnNewWindow2事件。假設形式持有TWebBrowser被命名爲Form1和網絡控制本身被命名爲WebBrowser1,寫這樣的處理程序:

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch; var Cancel: WordBool); 
var NF: TForm1; 
begin 
    NF := TForm1.Create(Application); 
    NF.Visible := True; 
    NF.WebBrowser1.RegisterAsBrowser; 
    ppDisp := NF.WebBrowser1.DefaultInterface; 
end; 

這將創建一個新的窗口,一個新的TWebBrowser應該當「點擊」導致一個新的窗口。