程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 用WebBrowser實現HTML界面的應用

用WebBrowser實現HTML界面的應用

編輯:.NET實例教程
Yaeuq.Net

 

用WebBrowser實現Html界面的應用
內容提要

什麼應用需要Html的界面

用什麼實現Html的界面

如何訪問Html頁面的內容

如何調用Javascript函數(兼談消息提示框)

如何禁止右鍵菜單(如何禁止用戶查看源代碼)

如何響應HTML的事件(如何在Html中調用Delphi的代碼)

如何能在Html控件上輸入回車

如何實現Html的打印和預覽

如何打包Html和相關文件



用WebBrowser實現Html界面的應用
樂土 2004-4-8

關鍵詞:WebBrowser Control, TWebBrowser, Delphi, Html,界面,Print Template,打印模板

內容摘要:本文講述了在Delphi中,利用WebBrower控件來實現Html界面所面臨的主要問題和解決辦法,並給出了代碼實例。

原文出處:http://www.Yaeuq.Net/software/webbrowser.htm

 

什麼應用需要Html的界面
HTML 的界面有以下特點:圖文混排,格式靈活,可以包含Flash、聲音和視頻等,實現圖文聲像的多媒體界面,而且易於建立和維護。另外,HTML的顯示環境一 般機器上都具備,通常不需要安裝額外的軟件。當然,HTML界面也有它欠缺的方面,即:界面控制能力有限,代碼調試不便----雖然DHtml提供了比較 強的編程特性,但是比起Delphi的傳統的開發語言和工具來,對界面的控制能力,尤其是和數據交互時的控制能力還是稍遜一籌。

了解了這些特點,我們就可以在實際應用開發中,適時地選擇Html技術。下面舉個例子:

一種儀器的管理程序,需要顯示該儀器的操作方法文檔,包含文字和圖片,並要求可以隱藏或顯示文檔,並能安要求打印。

這個應用中,圖文顯示、隱藏/顯示部分文檔、圖文打印等需求,都是Html界面所擅長的,用傳統的表單控件實現幾乎無法想像。

 

用什麼實現Html的界面
用Delphi實現HTML界面的應用主要有兩種選擇:WebBrowser Control或MSHtml。為了弄清兩者如何選擇,我們先來看看Internet Exporer 4.0及其後續版本的體系結構:



IE 浏覽器是建立在SHDOCVW.DLL組件之上的,而SHDOCVW.DLL則建立在MSHTML.DLL組件之上,底層則包括腳本引擎等。 SHDOCVW.DLL提供了對活動文檔(Active Document)的支持----例如Word等文檔可以在IE中顯示,並提供導航、in-place*連接、收藏夾、浏覽歷史和分級內容選擇 (PICS: Platform for Internet Content Selection)等功能。SHDOCVW.DLL組件雖然也提供了很多接口可以單獨使用,但是通常所指的SHDOCVW.DLL就是 WebBrowser Control。MSHTML.DLL是實行HTML解析和表現的組件。它通過DHtml對象模型提供對Html文檔的訪問。它實現了活動文檔服務器接 口,可以通過COM接口調用。

不難看出,WebBrowser在比較高的層次上,提供了更為豐富的功能,因此一般通常編程都采用 WebBrower控件。MSHTML只有在需要解析HTML這樣的特殊應用中,才推薦使用。微軟的MSDN網站上提供了一個使用MSHtml的例子: WalkAll Sample Source Page。

(*注:In-place鏈接,是指點擊HTML連接時,在相同的WebBrowser實例中顯示連接的HTML文檔。如果僅使用MSHtml.DLL,點擊鏈接將導致在新的浏覽器實例中打開鏈接的文檔。)

 

如何訪問Html頁面的內容
首先,在Delphi 7.0組件面板的Internet頁上,把TWebBrowser組件放到表單上。

通過執行以下語句裝載Html文檔到WebBrowser中進行顯示:

WebBrowser1.Navigate(GetCurrentDir + ''\index.htm'');

隱藏/顯示Html元件代碼示例:

var
Doc : IHtmlDocument2;
element: IHtmlElement;
begin
Doc := IHtmlDocument2(WebBrowser1.Document);
if nil <> Do
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved