這幾天,接觸到在delphi中內嵌網頁,用delphi7自帶的TWebBrowser控件,顯示的內容與本機IE8顯示的不一樣,但是跟裝IE8之前的IE6顯示一個效果。現在趕腳是下面兩個原因中的一個:
1.Navigate這個方法用的有點問題,里面的參數不同及Navigate2等不同方法,調用的IE內核版本不同
2.這個自帶的控件用着不爽,直接換一個第三方控件
對於第一點,找了半天冒發現什么,趕緊轉換思路,於是找到了
EmbeddedWB這個第三方控件。。。
下載址:http://www.delphifans.com/SoftView/SoftView_2705.html或http://d.download.csdn.net/detail/randb/631380
delphi7中安裝方法:
http://salomi.blog.51cto.com/389282/125954
另附幾個我為了解決這個問題趕腳有用的網址:
Delphi第三方控件EmbeddedWB的使用方法:
http://hi.baidu.com/cyrist/blog/item/e8782ea4c64919ec9052eedc.html
一個具有參考價值的帖子:
http://topic.csdn.net/u/20120310/12/32b22ac0-8e5f-4f9f-9083-b8c7aaa52380.html?seed=587680286&r=77849641#r_77849641
如何用Delphi調用IE打開網頁:http://blog.csdn.net/mrwu9902/article/details/4954555
關於調用其他瀏覽器內核的控件(我安裝了使用火狐內核的Mozilla ActiveX控件,但是代碼調用的時候,報錯了,沒怎么管了,有興趣的同仁可以研究下):
http://topic.csdn.net/u/20090527/09/58387179-3fe8-49d7-9d95-9d9c00767e65.html
http://topic.csdn.net/u/20120215/17/8501dc38-742e-47cb-bad1-35ef2a7bd0cc.html
http://delphi.about.com/b/2005/01/15/using-firefox-instead-of-twebbrowser-in-delphi-applications.htm
http://www.paranoia.clara.net/articles/taming_the_lizard_with_delphi.html
http://www.adamlock.com/mozilla/
做了這些功課,希望該問題下周一能夠順利解決。。。。。。
//////////////////////////////////////2012.03.25更新一下//////////////////////////////////////////////////////////
最近一段時間沒時間關注這個問題了,不曉得那個網頁是里面用了腳本的原因還是其他什么原因,唉,反正是結果目前還沒得到我想要的
1.EmbeddedWB與TWebBrowser實現效果一樣,跟IE8效果不一樣,有一種說法是“這兩個控件調用的不是本機的IE內核,在delphi7中而是調用的IE6內核”。。。自己目前還不清楚。。。
2.谷歌控件
Delphi Chromium Embedded:http://code.google.com/p/delphichromiumembedded/
這個裝好了以后,要把exe的輸出路徑設置到DEF/win32/bin,如果修改源代碼,貌似是可以不用總是把生成的exe放那個目錄的,沒實現我想要的效果,就沒研究這個問題了。。。
這個用了之后,打開那個網頁的時候,半天沒反應,窗口好像死在那了。。。有哪位高手看到這,知道原因的,還請留言指點幾句。。。
3.還有GeckoBrowser for Delphi這個控件,還沒研究出來怎么用這玩意。。。
4.這一種自己可以改變下IE瀏覽器窗口的顯示
procedure OpenInIE(aURL: string); var IE: Variant; begin IE := CreateOleObject('InternetExplorer.Application'); IE.Visible := true; //可見 IE.left := 0; IE.top := 0; IE.height := 1050; //高度 IE.width := 1680; //寬度 IE.menubar := 0; //取消菜單欄 IE.addressbar := 0; //取消地址欄 IE.toolbar := 0; //取消工具欄 IE.statusbar := 0; //取消狀態欄 IE.resizable := 0; //不允許用戶改變窗口大小 IE.Navigate(aURL); end;
procedure TForm1.Button2Click(Sender: TObject); begin ShellExecute(Handle, 'open', 'IExplore.EXE', 'http://www.baidu.com', nil, SW_SHOWNORMAL); end;
6.
procedure TIEShowFrm.FormCreate(Sender: TObject); var Flags: OLEVariant; begin //WebBrowser1.Navigate(WideString('http://www.baidu.com'), Flags, Flags, Flags, Flags); WebBrowser1.Navigate('http://www.baidu.com'); end;