日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > HTML >内容正文

HTML

在Delphi程序中应用IE浏览器控件

發(fā)布時(shí)間:2025/3/21 HTML 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Delphi程序中应用IE浏览器控件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

----?大概大家還記得Delphi的范例程序中的那個(gè)瀏覽器的例子吧。在那個(gè)例子中,利用控件THttp的屬性和方法制作了一個(gè)瀏覽器。該例子用于理解THttp控件的使用方法,確實(shí)不錯(cuò)。但很少有人會(huì)用它作為一個(gè)真正的瀏覽器,原因很簡(jiǎn)單,功能太有限了,不支持Frame,不支持Script腳本語(yǔ)言,不能以本地文件方式查看HTML文件等等。大部分用戶在使用IE或Navigator;我們程序員也樂(lè)意使用現(xiàn)成的瀏覽器,在需要使用瀏覽器時(shí),就在程序中通過(guò)WinExec或CreateProcess等方法調(diào)用外部瀏覽器讓用戶使用。這種方法確實(shí)挺省事的,但總讓筆者有點(diǎn)不甘心,把程序控制權(quán)讓給其它外部程序總讓自己很感到麻煩,尤其當(dāng)應(yīng)用軟件的使用者的計(jì)算機(jī)使用水平不是很高時(shí)。如果能有一個(gè)瀏覽器控件,就可把瀏覽器嵌入到自己的程序中,那應(yīng)該挺不錯(cuò)的。?

----?如果你的軟件的外部環(huán)境是WIN95+IE或WIN98(這樣的軟件使用率還很高的),那樣在系統(tǒng)中就已經(jīng)有了一個(gè)IE瀏覽器控件可以使用了,也許是你長(zhǎng)時(shí)間沒(méi)有發(fā)覺(jué)吧,別浪費(fèi)資源了,拿來(lái)使用吧。當(dāng)系統(tǒng)中已經(jīng)安裝了IE3.X或IE4.X時(shí),IE瀏覽器控件已經(jīng)注冊(cè)到系統(tǒng)中了,請(qǐng)運(yùn)行Regedit,用“編輯”菜單下的“查找”功能,查找“Shell.Explorer”鍵名,你會(huì)發(fā)現(xiàn)?IE控件已經(jīng)作為ActiveX控件注冊(cè)在系統(tǒng)中了,這樣就我們可以在Delphi中使用該控件了。?

一、?在Delphi中引入IE瀏覽器控件
----?由于IE瀏覽器控件需要提供顯示功能才能使用,所以不能在程序中用CreateOleObject取得一個(gè)實(shí)例后直接使用其屬性和方法,否則程序在運(yùn)行時(shí)會(huì)引起錯(cuò)誤;這時(shí)需要用Delphi中提供的?“Import?ActiveX?Control”功能,操作方法見(jiàn)下所述。?
----?在“Components”菜單中,調(diào)用“Import?ActiveX?Control”功能,在Registered?Controls?(注冊(cè)控件)列表中選擇“Microsoft?Internet?Controls(Version1.1)”,下方的提示欄中顯示出其路徑為C:\PWin98\System\SHDOCVW.DLL,在Class?Names(類型列表)中列出了可注冊(cè)的三個(gè)控件:?TWebBrowser_V1、TWebBrowser和TShellFolderViewOC,分別為IE3瀏覽器控件、IE4瀏覽器控件和?“Microsoft外殼文件夾查看路由器”控件。單擊Install進(jìn)行安裝。安裝完成后,在“ActiveX”?控件欄中,將增加三個(gè)控件,分別為TWebBrowser_V1、TWebBrowser和TShellFolderViewOC;在?Delphi的Imports目錄下,將創(chuàng)建一個(gè)文件SHDocVw_TLB.PAS,其中有這三個(gè)控件的包裝細(xì)節(jié),當(dāng)然含控件的屬性和方法說(shuō)明了,它可以作為我們使用控件的參考資料。?

二、?在Delphi程序中使用IE瀏覽器控件
----?
以TWebBrowser(IE4瀏覽器控件)為例子。
TWebBrowser的常見(jiàn)屬性和方法主要有:
GoBack:方法,后退到上一個(gè)頁(yè)面。
GoForward:方法,前進(jìn)到下一個(gè)頁(yè)面。
GoHome:方法,調(diào)用默認(rèn)的主頁(yè)頁(yè)面,
該頁(yè)面在IE的選項(xiàng)中設(shè)定。
GoSearch:方法,調(diào)用默認(rèn)的搜索頁(yè)面,
該頁(yè)面在IE的選項(xiàng)中設(shè)定。
Navigate(const?URL:?WideString;?
var?Flags,?TargetFrameName,?PostData,?
Headers:?OleVariant):方法,
調(diào)用指定頁(yè)面,具體參數(shù)如下:
URL:指定頁(yè)面的URL。Flags:
???Word類型,作用還不清楚,可設(shè)為0。
TargetFrameName:WideString,
打開(kāi)頁(yè)面所在的Frame,為空字符串時(shí)在當(dāng)前的
Frame中打開(kāi);TargetFrameName
指定的Frame存在時(shí)在Frame中打開(kāi);
TargetFrameName指定的Frame
不存在時(shí)則新建一個(gè)窗口打開(kāi),此時(shí)就相當(dāng)
于調(diào)用外部的IE瀏覽器了。
PostData:boolean,是否允許發(fā)送數(shù)據(jù)。
Headers:WideString,
要發(fā)送的URL請(qǐng)求的頭部數(shù)據(jù)。
Refresh:方法,刷新當(dāng)前頁(yè)面。
Stop:方法,停止調(diào)用或打開(kāi)當(dāng)前頁(yè)面。
LocationName:屬性(WideString),當(dāng)前位置的名稱。
LocationURL:屬性(WideString),當(dāng)前位置的URL。
Busy:?屬性(Boolean),是否正忙。
Visible:?屬性(Boolean),瀏覽器窗口是否可見(jiàn)。
(以下屬性為在TWebBrowser新增,
TWebBrowser_V1中沒(méi)有,其作用有待探索)
StatusBar:?屬性(Boolean),是否顯示狀態(tài)欄。
StatusText:?屬性(WideString),狀態(tài)欄內(nèi)容。
ToolBar:?屬性(SYSINT),工具欄中的內(nèi)容。
MenuBar:?屬性(Boolean),是否顯示菜單條。
FullScreen:?屬性(Boolean),是否全屏顯示。
Offline:?屬性(Boolean),是否脫機(jī)瀏覽。
AddressBar:?屬性(Boolean),是否顯示地址欄。

TWebBrowser的常見(jiàn)事件主要有:
OnStatusTextChange?=?procedure
(Sender:?TObject;?const?Text:?WideString)?
of?object;
----?在狀態(tài)欄提示信息變化時(shí)發(fā)生,參數(shù)Text為當(dāng)前狀態(tài)欄提示信息,我們可以根據(jù)該信息來(lái)更新我們自己的狀態(tài)欄提示信息或處理其它的事務(wù).?
----?OnProgressChange?=?procedure(Sender:?TObject;?Progress,?ProgressMax:?Integer)?of?object;?

----?在打開(kāi)頁(yè)面的進(jìn)度變化時(shí)發(fā)生,參數(shù)Progress為當(dāng)前進(jìn)度,ProgressMax為總進(jìn)度,我們可以根據(jù)這兩個(gè)參數(shù)來(lái)更新我們自己的狀態(tài)欄提示信息或處理其它的事務(wù).?

----?OnCommandStateChange?=?procedure(Sender:?TObject;?Command:?Integer;?Enable:?WordBool)?of?object;?

----?當(dāng)執(zhí)行新的命令時(shí)發(fā)生,Command為命令標(biāo)識(shí),Enable為是否允許執(zhí)行該命令.?OnTitleChange?=?procedure(Sender:?TObject;?const?Text:?WideString)?of?object;?

----?在頁(yè)面的標(biāo)題發(fā)生變化時(shí)發(fā)生,Text為當(dāng)前標(biāo)題.?

----?OnPropertyChange?=?procedure(Sender:?TObject;?const?Property_:?WideString)?of?object;?

----?在頁(yè)面的屬性發(fā)生變化時(shí)發(fā)生,Property_為屬性名稱?OnDownloadComplete:?TNotifyEvent?

----?在下載頁(yè)面完成后發(fā)生.?

----?OnDownloadBegin:?TNotifyEvent?

----?在下載頁(yè)面開(kāi)始前發(fā)生.?

三、?在Delphi程序中應(yīng)用IE瀏覽器控件的兩個(gè)例子?
----?(1)制作自己的幫助系統(tǒng)?
----?我們利用IE瀏覽器控件為用戶制作了一個(gè)幫助系統(tǒng),幫助文件由多個(gè)HTML文件組成,一個(gè)主題對(duì)應(yīng)一個(gè)?HTML文件(Topic.HTM),每個(gè)主題下的項(xiàng)目對(duì)應(yīng)HTML文件中的一個(gè)標(biāo)簽(#Item)。這樣在我們的系統(tǒng)中,就不必再調(diào)用IE瀏覽器或WinHelp程序來(lái)為用戶提供幫助了。相信大家知道HTML幫助文件與傳統(tǒng)的HLP幫助文件相比的優(yōu)勢(shì)所在吧。?

----?在下面例子中,演示了TWebBrowser(IE4瀏覽器控件)的Navigate方法的使用方法。請(qǐng)注意程序中的注釋。(下面為程序的主要片段)。?

{根據(jù)主題和項(xiàng)目調(diào)用幫助文件}
procedure?ShowHelp
(?HelpTopic,HelpItem?:?String?);
var
???TargetFrameName,PostData,
Heads,Flags?:?OleVariant;
???URL?:?widestring;
begin
?TargetFrameName?:=?'';{指定Frame的空字符串時(shí),
則在當(dāng)前Frame中打開(kāi)幫助文件}
?PostData?:=?false;{不發(fā)送數(shù)據(jù)}
?Heads?:=?'';{Header信息為空}
?Flags?:=?0;{Flags設(shè)為0}
?URL?:=?HelpTopic?+?'.HTM#'+HelpItem;
{幫助信息的URL}
?with?formHelp.webbrowser?do{在幫助窗口
中的IE瀏覽器控件中顯示幫助信息}
??begin
???navigate(URL,Flags,TargetFrameName,
PostData,Heads);{顯示幫助信息}
??end;
end;
----?(2)顯示一個(gè)GIF動(dòng)畫?
----?假如你還沒(méi)有一個(gè)適合的動(dòng)畫顯示控件,不妨試用一下下面方法.?

procedure?ShowGIF(?GIFFileName?:?String?);
var
???TargetFrameName,PostData,Heads,Flags?:?OleVariant;
???URL?:?widestring;
begin
?TargetFrameName?:=?'';{指定Frame的空字符串時(shí),
則在當(dāng)前Frame中打開(kāi)動(dòng)畫文件}
?PostData?:=?false;{不發(fā)送數(shù)據(jù)}
?Heads?:=?'';{Header信息為空}
?Flags?:=?0;{Flags設(shè)為0}
?URL?:=?GIFFileName;
?with?formGIF.webbrowser?do{在指定窗口中的
IE瀏覽器控件中顯示動(dòng)畫}
??begin
???navigate(URL,Flags,TargetFrameName
,PostData,Heads);{顯示動(dòng)畫文件}
??end;
end;

轉(zhuǎn)載于:https://www.cnblogs.com/chengxin1982/archive/2009/03/01/1400676.html

總結(jié)

以上是生活随笔為你收集整理的在Delphi程序中应用IE浏览器控件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。